2011-08-19 62 views
0

最近我創建了一個拍賣網站。我想讓它像用戶出價該項目時,有一個AI競標者來提升用戶。對於說5秒後item1的用戶出價,AI出價人也會自動出價item1。任何想法如何5秒後自動執行它?如何在服務器端自動執行功能

+1

這聽起來像是欺詐行爲。 – Jacob

+0

這實際上是一個拍賣遊戲網站。不是現實生活中的一個。 – user236501

+0

有很多選擇,哪一個最適合你,這取決於你目前建立的細節。 –

回答

0

一個簡單而有效的解決方案可能是將所有未來的出價與「截止日期」以及所有要在列表中出價的信息一起存儲。然後,每隔5秒鐘左右,您可以在列表中循環,並在所有出價達到要求時進行出價。這個系統將是可擴展的,並可用於大量的出價。當然,理想情況下,這將運行在不同的線程中。

這有點像在您的servlet中重新實現「cron-like」作業管理,但我看不到任何適合您的需求的解決方案。

我不確定我是否回答了您的問題,希望如此。

問候, 斯特凡

0

取決於什麼樣的技術,你實際使用時,可以使用EJB計時器對於例如,當一個新的出價時,在定時器超時(一段時間後)剛開始的計時器的EJB方法執行並更新出價。

0

標準的servlet解決方案

  1. 創建一個Filter,將其映射到您的出價Servlet的URL模式。
  2. 在你的doFilter()中,在你的filterChain.doFilter()調用之後(即,在servlet/JSP處理完請求之後),在將來安排一個動作5秒鐘(你可以使用標準java ScheduledExecutorService
  3. 在您計劃(您的任務)的Runnable實施中,放置AI出價。
0

在我看來:

  1. 如果用戶的出價,並在5秒,它發送請求到服務器,我寧願JSsetTimeout()。 (當然,它需要瀏覽器的JS - 在W3School中閱讀更多內容)。除此之外,你可以使用一個數組(或者像那樣的smt)作爲一個隊列(在服務器端),在每5秒鐘後,它鎖定隊列(同步),並檢查5秒前插入的數組,並處理它(或每次向服務器發送事件請使用Thread)。基本上,你可以使用一個線程來做到這一點? (你有沒有這個意思?)