【问题标题】:How can clear enqueue jobs in backburner with beanstalkd in rails while updating any object如何在更新任何对象时使用 rails 中的 beanstalkd 清除 backburner 中的排队作业
【发布时间】:2015-01-07 12:08:41
【问题描述】:

在我的项目中创建活动(模型)时,我在 rails 中的 beanstalkd 的帮助下为 Backburner 排队工作。如下所述:

Backburner::Worker.enqueue(DeviceJob, [ad, campaign.id, "Ad"], :delay => add_job.to_i.minutes)

这很好,但是当我更新活动时,以前的工作将保留在当前工作中。但是,我想删除当前活动的所有以前的工作。

在delayed_job 中,我们可以处理活动记录表。 在resque中,我们可以使用redis server。

但在次要事件中,这怎么可能。

谢谢。

【问题讨论】:

    标签: ruby-on-rails beanstalkd


    【解决方案1】:

    我要么直接使用 beaneater API,要么使用像 beanstalkd_view gem 这样提供基于 Web 的管理 UI 的工具。

    beanstalk = Beaneater::Pool.new(['localhost:11300'])
    tube = beanstalk.tubes["some-tube"]
    while tube.peek(:ready)
      job = tube.reserve
      job.delete
    end
    beanstalk.close
    

    【讨论】:

    • 谢谢。但在我的情况下,我们需要在创建时为每个活动创建一个入队记录。因为,在更新活动之后,我们希望以前的工作替换为更新的工作详细信息。
    猜你喜欢
    • 2014-09-26
    • 2020-09-27
    • 2023-04-03
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    相关资源
    最近更新 更多