我有一个rubyonrails应用程序,使用resquegem来处理后台作业。我让用户触发了可能需要10分钟以上才能完成的后台作业(他们正在处理大量数据)。作业完成时提醒用户的最佳方式是什么?我已经看到了答案here关于使用resque-status,这是唯一的解决方案吗?或者是否有另一种方法可以通过正常的resque(我已经实现了)来提醒用户? 最佳答案 如果您打算异步通知用户,您有以下三种选择:在数据库中设置一个标志,然后在他们下次登录时更改您的UI。(例如弹出警报View或其他内容。)在作业运行结束时向他们发送电子邮件。只
我已经阅读官方Celery的docs,DigitalOcean的tutorial然后运行得很好examples.但我无法理解我的应用程序如何像在ResqueRuby中那样进行通信。例如,我在docker容器中有主要的python应用程序,它必须为其他容器中的2个其他python应用程序生成任务。在Resque中,我的应用程序只是监听一些队列并接受任务,然后做一些工作并推回响应。 最佳答案 Celery还需要一个队列/代理来在应用程序进程和工作进程之间进行通信。参见http://docs.celeryproject.org/en/la
我已经阅读官方Celery的docs,DigitalOcean的tutorial然后运行得很好examples.但我无法理解我的应用程序如何像在ResqueRuby中那样进行通信。例如,我在docker容器中有主要的python应用程序,它必须为其他容器中的2个其他python应用程序生成任务。在Resque中,我的应用程序只是监听一些队列并接受任务,然后做一些工作并推回响应。 最佳答案 Celery还需要一个队列/代理来在应用程序进程和工作进程之间进行通信。参见http://docs.celeryproject.org/en/la
如果我将一个大于5mb的视频文件保存到服务器上。我应该创建一个后台作业来保存这个文件吗?这应该怎么做?我的视频模型有标题、描述和附件列/字段。所有字段都是必需的。在defcreate中,我应该做类似"ifResque.enqueue(Save,@video)"的操作,而不是执行"if@video.save"?我不确定如何做到这一点,因为将参数传递给Resque.enqueue()会将其转换为散列。其次,对于“”ifResque.enqueue(Save,@video)“”,需要一个true或false。然而,Resque.enqueue不能返回任何东西。还是我错了?按钮线是。使用带有r
如果我将一个大于5mb的视频文件保存到服务器上。我应该创建一个后台作业来保存这个文件吗?这应该怎么做?我的视频模型有标题、描述和附件列/字段。所有字段都是必需的。在defcreate中,我应该做类似"ifResque.enqueue(Save,@video)"的操作,而不是执行"if@video.save"?我不确定如何做到这一点,因为将参数传递给Resque.enqueue()会将其转换为散列。其次,对于“”ifResque.enqueue(Save,@video)“”,需要一个true或false。然而,Resque.enqueue不能返回任何东西。还是我错了?按钮线是。使用带有r
由于集群式Redis仍在开发中,Resque中是否有机制可以在主服务器出现故障时自动故障转移到Redis从服务器? 最佳答案 我不这么认为。但是,您可以implementthemasterelectionmechanismyourself很容易使用ApacheZookeeper:require"rubygems"require"zookeeper"deflog(msg)puts"[#{Process.pid}]#{msg}"enddefdebug(obj)log(obj.inspect)enddefon_master_changed
由于集群式Redis仍在开发中,Resque中是否有机制可以在主服务器出现故障时自动故障转移到Redis从服务器? 最佳答案 我不这么认为。但是,您可以implementthemasterelectionmechanismyourself很容易使用ApacheZookeeper:require"rubygems"require"zookeeper"deflog(msg)puts"[#{Process.pid}]#{msg}"enddefdebug(obj)log(obj.inspect)enddefon_master_changed
我正在尝试从Padrino应用程序异步发送电子邮件-我尝试过使用Rubyfork命令,但我认为它的扩展性不是很好,我也尝试过delayed_job但现在选择了Resque(主要是因为它附带的网络界面非常好)。除了我不得不使用Pony而不是padrino-mailer从/lib发送我的电子邮件外,我可以正常工作。如果能帮我从图片中删除小马,我将不胜感激。我遇到的主要问题是我不知道如何从Controller或助手外部调用padrino-mailer。我相信这是可能的,并会感谢任何帮助。如果我们能解决这个问题,我认为这对其他Padrino开发人员可能非常有用——异步发送电子邮件可能是Web应
我正在尝试从Padrino应用程序异步发送电子邮件-我尝试过使用Rubyfork命令,但我认为它的扩展性不是很好,我也尝试过delayed_job但现在选择了Resque(主要是因为它附带的网络界面非常好)。除了我不得不使用Pony而不是padrino-mailer从/lib发送我的电子邮件外,我可以正常工作。如果能帮我从图片中删除小马,我将不胜感激。我遇到的主要问题是我不知道如何从Controller或助手外部调用padrino-mailer。我相信这是可能的,并会感谢任何帮助。如果我们能解决这个问题,我认为这对其他Padrino开发人员可能非常有用——异步发送电子邮件可能是Web应
我对使用Resque将工作分配到许多不同的计算机很感兴趣。不过我有一个担心。如果我需要杀死一名正在工作的worker,我希望能够让它自动重新排队该工作以确保它由另一名worker运行。我曾与DjangoCelery一起工作过,只是执行CTRL+C,这会杀死工作人员并重新排队任务。有没有办法让ResqueinRails发生这种情况?谢谢! 最佳答案 我刚刚弄明白了。我可以捕获信号项(CTRL-C)并强制它重新排队作业或告诉作业失败并让resque-retry稍后重新排队作业。例如:defself.perform(args)trap("