【问题标题】:Do RabbitMQ, Beanstalk or Resque support scheduling a task at a certain date?RabbitMQ、Beanstalk 或 Resque 是否支持在特定日期安排任务?
【发布时间】:2013-05-13 16:46:04
【问题描述】:

我看过 RabbitMQBeanstalkResque,它们似乎都面向异步、非延迟任务(即运行所有这些都尽快)。

它们中的任何一个都支持在某个时间戳上安排任务吗?

【问题讨论】:

    标签: rabbitmq resque mq beanstalkd


    【解决方案1】:

    Beanstalk 提供了“延迟”参数,您可以将延迟队列中的消息延迟特定时间段。

    Resque 有一个或多个调度附加组件,可用于调度任务。

    对于队列,延迟通常是一个整数,指定延迟的秒数(在这种情况下,您需要转换为所需的增量)。更强大的调度(例如,作为任务队列的一部分)通常会通过客户端库获取日期时间值。

    请注意,您还可以使用 IronMQ 推送队列(具有类似 beanstalk 的延迟)或 IronWorker(调度任务而不是排队)。 (请注意,我为 Iron.io 工作。)

    【讨论】:

      【解决方案2】:

      Deplayed_job 这样做:

      Delayed::Job.enqueue(MailingJob.new(params[:id]), 3, 3.days.from_now)
      

      http://railscasts.com/episodes/171-delayed-job?view=asciicast

      【讨论】:

        猜你喜欢
        • 2016-07-30
        • 1970-01-01
        • 1970-01-01
        • 2022-07-11
        • 2011-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-19
        相关资源
        最近更新 更多