当前位置: 首页 > 面试题库 >

在Java Web应用程序中运行常规后台事件

谷翰飞
2023-03-14
问题内容

在第15个播客中,杰夫提到他在Twitter上发表了关于如何在后台运行常规事件的推特,好像它是正常功能一样-
不幸的是,我似乎无法通过推特找到它。现在,我需要做类似的事情,并将这个问题提交给大众。

我当前的计划是,当第一个用户(可能是我)进入站点时,它将启动一个后台线程,该线程等待直到分配的时间(每小时一小时),然后启动阻止其他人的事件(我是一名Windows程序员,因此我认为就事件和WaitOnMultipleObjects而言,直到完成为止。

Jeff是如何在Asp.Net中做到这一点的,并且他的方法适用于Java Web应用程序世界吗?


问题答案:

我认为开发用于运行后台任务的自定义解决方案并不总是值得的,因此我建议在Java中使用Quartz
Scheduler

在您的情况下(需要在Web应用程序中运行后台任务),可以使用分发中包含的ServletContextListener在Web容器启动时初始化引擎。

之后,您可以启动(触发)后台任务(作业),例如可以使用日历或类似cron的表达式。在您的情况下,您很可能应该使用SimpleTrigger来解决该问题,它使您能够以固定的固定间隔运行作业。

作业本身也可以在Quartz中轻松描述,但是您尚未提供有关需要运行的任何详细信息,因此我无法在该领域提供建议。



 类似资料:
  • 我有一个简单的java程序,它只是一段代码,可以从数据库中读取并根据某些条件修改数据库的内容。现在,我想要的是这个程序应该在启动时自动启动并在后台静默运行,除非有人从任务管理器中杀死它。我以前从未做过这样的事情,也不知道具体该怎么做。有人能帮我解决这个问题吗?谢谢你...

  • 我遇到了一个需求,但我无法获得正确的实施方式,因此需要您的帮助。 我想做什么我想根据收到的通知执行以下操作: 当应用程序处于打开状态且处于前台(即用户可见)且我收到通知时,我只需显示一个弹出窗口即可开始我的活动B 我做了什么?我已经达到了第1点和第2点。我想达到第三点。我试过下面的方法 然而,在这两种情况下,点#2和#3都返回true,所以我不能仅区分#3。 我也尝试了下面的每一个活动, 但是,它

  • 谁能给我建议哪种最好的方法来不中断地运行应用程序?

  • 问题内容: 我已经开发了一个Java控制台应用程序,该应用程序在启动时打开控制台窗口并保持在前台,我想在后台启动该应用程序。 现在,我通过以下命令行启动该应用程序: 有没有办法实现这种行为?更改命令行参数就足够了,还是我需要对代码进行一些更改? 问题答案: 答案取决于操作系统。

  • 这是我第一次在世博会上开发,我正在构建跟踪位置的应用程序,并使用节点每5秒将数据发送到服务器。我使用的TaskManager API从博览会我会跟踪一切,它的工作原理我得到的数据。但是当我把我的应用放在后台时,它会停止。 这是否应该在后台任务中运行(),即使在使用世博开发工具的开发环境中也是如此,还是需要在工作之前将其置于生产模式? 当我像这样将应用程序转换为后台模式时,我的停止工作。 我的示例代