我对使用Resque将工作分配到许多不同的计算机很感兴趣。不过我有一个担心。如果我需要杀死一名正在工作的worker,我希望能够让它自动重新排队该工作以确保它由另一名worker运行。我曾与DjangoCelery一起工作过,只是执行CTRL+C,这会杀死工作人员并重新排队任务。有没有办法让ResqueinRails发生这种情况?谢谢! 最佳答案 我刚刚弄明白了。我可以捕获信号项(CTRL-C)并强制它重新排队作业或告诉作业失败并让resque-retry稍后重新排队作业。例如:defself.perform(args)trap("
我对使用Resque将工作分配到许多不同的计算机很感兴趣。不过我有一个担心。如果我需要杀死一名正在工作的worker,我希望能够让它自动重新排队该工作以确保它由另一名worker运行。我曾与DjangoCelery一起工作过,只是执行CTRL+C,这会杀死工作人员并重新排队任务。有没有办法让ResqueinRails发生这种情况?谢谢! 最佳答案 我刚刚弄明白了。我可以捕获信号项(CTRL-C)并强制它重新排队作业或告诉作业失败并让resque-retry稍后重新排队作业。例如:defself.perform(args)trap("
假设我们有2个服务器。一个app服务器,其中是http服务器,app服务器和应用程序,它将对世界开放。另一台服务器worker应该只运行Sidekiq作业(有应用程序、Redis和Sidekiq)。如何配置Sidekiq以从app服务器排队作业并在worker服务器中运行它们? 最佳答案 您的app服务器必须具有Sidekiqgem才能将作业排入队列,并且还可以访问位于worker服务器中的Redis数据库。我会使用现有的任何Redis云服务,让app服务器和worker服务器都可以访问它。无论哪种方式,您基本上都需要在app和wo
假设我们有2个服务器。一个app服务器,其中是http服务器,app服务器和应用程序,它将对世界开放。另一台服务器worker应该只运行Sidekiq作业(有应用程序、Redis和Sidekiq)。如何配置Sidekiq以从app服务器排队作业并在worker服务器中运行它们? 最佳答案 您的app服务器必须具有Sidekiqgem才能将作业排入队列,并且还可以访问位于worker服务器中的Redis数据库。我会使用现有的任何Redis云服务,让app服务器和worker服务器都可以访问它。无论哪种方式,您基本上都需要在app和wo
我有一个应用程序使用resque来运行一些长时间运行的作业。有时需要8小时或更长时间才能完成。在作业失败的情况下,有没有办法监控resque本身,看看作业是否在运行?我知道我可以在数据库表(或redis本身)中更新作业的状态,但我想知道作业是否仍在运行,以便在必要时将其终止。我需要做的具体事情是:判断作业是否还在运行判断作业是否停止杀死卡住的作业 最佳答案 请求githubrepository有这个secretgem,god将执行此操作的任务:观察您的任务并杀死陈旧的任务。https://github.com/resque/resq
我有一个应用程序使用resque来运行一些长时间运行的作业。有时需要8小时或更长时间才能完成。在作业失败的情况下,有没有办法监控resque本身,看看作业是否在运行?我知道我可以在数据库表(或redis本身)中更新作业的状态,但我想知道作业是否仍在运行,以便在必要时将其终止。我需要做的具体事情是:判断作业是否还在运行判断作业是否停止杀死卡住的作业 最佳答案 请求githubrepository有这个secretgem,god将执行此操作的任务:观察您的任务并杀死陈旧的任务。https://github.com/resque/resq
我正在运行Rails4.2.8,我想让我的工作只在特定条件下运行。目前我正在检查调用作业的代码,但将逻辑包含在作业类中会更清晰。有人这样做过吗?classMyJob我正在使用Sidekiq4.2.10作为后台作业适配器。 最佳答案 您可以使用around_enqueue在不引发异常的情况下获得相同的结果。当您的工作需要不排队时,这会很有用。例如:around_enqueuedo|_job,block|ifmy_conditionblock.call#thiswillenqueueyourjobendendOBS:值得注意的是,此答
我正在运行Rails4.2.8,我想让我的工作只在特定条件下运行。目前我正在检查调用作业的代码,但将逻辑包含在作业类中会更清晰。有人这样做过吗?classMyJob我正在使用Sidekiq4.2.10作为后台作业适配器。 最佳答案 您可以使用around_enqueue在不引发异常的情况下获得相同的结果。当您的工作需要不排队时,这会很有用。例如:around_enqueuedo|_job,block|ifmy_conditionblock.call#thiswillenqueueyourjobendendOBS:值得注意的是,此答
我需要执行一项工作,其中每次创建订单时都会将其分配给供应商,如果供应商不接受订单并在指定时间内更新状态,订单将被自动拒绝并更新状态拒绝。我面临的问题是作业进入延迟队列,如resquewebView所示,但在指定的延迟时间后没有移动到主队列这是我的工作。classAutoRejectionJob在我的分配模型中:classEstamps::Assignment在这里,一旦创建了分配记录,其状态通常在创建时保持为“已分配”。现在从创建之时起,如果用户没有在指定时间内更新状态,则作业必须自动将状态更新为“已拒绝”。我也试过这个方法。defenqueue_check_statusResque.
我需要执行一项工作,其中每次创建订单时都会将其分配给供应商,如果供应商不接受订单并在指定时间内更新状态,订单将被自动拒绝并更新状态拒绝。我面临的问题是作业进入延迟队列,如resquewebView所示,但在指定的延迟时间后没有移动到主队列这是我的工作。classAutoRejectionJob在我的分配模型中:classEstamps::Assignment在这里,一旦创建了分配记录,其状态通常在创建时保持为“已分配”。现在从创建之时起,如果用户没有在指定时间内更新状态,则作业必须自动将状态更新为“已拒绝”。我也试过这个方法。defenqueue_check_statusResque.