Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在服务器端自动执行功能_Java_Jsp - Fatal编程技术网

Java 如何在服务器端自动执行功能

Java 如何在服务器端自动执行功能,java,jsp,Java,Jsp,最近我正在创建一个拍卖网站。我想让它像当用户出价的项目,有一个人工智能投标人向用户。对于5秒后用户对项目1的出价,AI投标人也将自动对项目1进行出价。你知道我如何在5秒钟后自动执行吗?一个简单而有效的解决方案是,将所有未来的投标都存储在一个列表中,并注明“截止日期”和所有投标信息。然后每隔5秒钟左右,你就可以循环浏览列表,并在到期时进行所有出价。该系统具有可扩展性,可用于大量投标。当然,理想情况下,这将在不同的线程中运行 这有点像在servlet中重新实现“类似cron”的作业管理,但我看不到任

最近我正在创建一个拍卖网站。我想让它像当用户出价的项目,有一个人工智能投标人向用户。对于5秒后用户对项目1的出价,AI投标人也将自动对项目1进行出价。你知道我如何在5秒钟后自动执行吗?

一个简单而有效的解决方案是,将所有未来的投标都存储在一个列表中,并注明“截止日期”和所有投标信息。然后每隔5秒钟左右,你就可以循环浏览列表,并在到期时进行所有出价。该系统具有可扩展性,可用于大量投标。当然,理想情况下,这将在不同的线程中运行

这有点像在servlet中重新实现“类似cron”的作业管理,但我看不到任何现成的解决方案能够满足您的需求

我不确定我是否回答了你的问题,希望如此

问候,,
Stéphane取决于您实际使用的技术,您可以使用EJB定时器。例如,当新的bid发生时,只要启动定时器EJB,在定时器超时时(一段时间后),该方法执行并更新bid。

标准servlet解决方案

  • 创建一个,将其映射到bidservlet的url模式
  • 在doFilter()中,在filterChain.doFilter()调用之后(即,在servlet/JSP处理请求之后),在未来5秒钟内安排一个操作(您可以使用标准java)
  • 在您计划的可运行实现(任务)中,放置AI出价
  • 我认为:

  • 如果用户出价,5秒后,它会将请求发送到服务器,我更喜欢使用
    setTimeout()
    JS。(当然,这需要浏览器的JS——请在W3School中阅读更多相关内容)
  • 否则,您可以使用一个数组(或类似的smt)作为队列(在服务器端),每5秒后,它将锁定队列(同步),检查5秒前插入的队列,并对其进行处理(或者每次事件请求服务器时使用
    线程
    )。基本上,你可以用一个线程来做这个把戏?(你是这个意思吗?)
    这实际上是一个拍卖游戏网站。这不是现实生活中的一个。有很多选择,哪一个最适合你真的取决于你目前建设的细节。