我是delayed_job的新手,我开始编写自己的“自定义作业”。每个自定义作业基本上只是一个常规的ruby类,但我不确定这些自定义作业类通常存储在项目目录结构中的何处。我在考虑lib,但此时lib似乎是一个垃圾抽屉:/(不过也许没关系)谢谢!! 最佳答案 常见的方法是在app文件夹下创建jobs文件夹。但您唯一应该关心的是它们是您的文件,因此请以您觉得最适合自己的方式进行。 关于ruby-on-rails-Rails+延迟作业:Whereisthecorrectplacetosto
我正在使用delayed_job并转移到一个更强大的新服务器。所以现在我想运行并行作业,就像现在一样IhavethePOWER!,但对delayed_job是否可以运行多个并行队列感到困惑?Thisquestion建议有命名队列,但这些队列是否都在一个表中运行,因此是顺序的?在底部@JesseWolgamott建议您可以为每个队列创建一个表,然后并行运行。有没有人这样做过,他们能告诉我是怎么做到的吗? 最佳答案 这是可能的,而且我一直在这样做。在我们的例子中,我们需要多个作业来处理三种不同类型的作业,比如queue_a、queue_
经过recenttutorial关于使用Git为Ruby部署设置AWSElasticBeanstalk,我只是从我的CI服务器设置了一个ElasticBeanstalk环境。但是,应用程序无法启动。我查看日志发现bundleinstall失败并显示一条错误消息。Fetchinggit@github.com:example/private-repository.gitHostkeyverificationfailed.fatal:Theremoteendhungupunexpectedly[31mGiterror:commandgitclone'git@github.com:exampl
我有一个使用delayed_job运行的后台任务。我可以看到它确实从日志语句运行。与在前台运行相比,它似乎没有正确的结果,所以我想在IRB控制台中调试它。我正在运行后台任务rakejobs:work并且它不会触发调试器语句。如何加载调试器? 最佳答案 启动一个标准的rails控制台rubyscript/console并在此处启动一个worker,这将看到并触发调试器语句。worker=Delayed::Worker.newworker.start 关于ruby-on-rails-如何调试
AWSElasticBeanstalk-无法使用最新平台克隆或ebupgrade从Ruby2.1到Ruby2.2我一直在为这个问题绞尽脑汁。早在5月份,AWS就宣布他们的RubyElasticEnvironments现在提供Ruby-2.2(例如ruby-2.2-(passenger-standalone)或ruby-2.2-(puma))。我无法将现有的ruby-2.1环境升级到ruby-2.2。看来我必须完全重新创建它们……这看起来很傻吗?还有其他人遇到过这个吗?我只是错过了一些简单的东西吗?额外信息我一直在愉快地使用ruby-2.1-(passenger-standalo
我正在安排一项工作,比如在10分钟内运行。如何在不使用模型中任何类型的肮脏额外字段等的情况下正确取消此特定作业。是否有删除特定作业或与特定模型、实例等相关的作业的调用? 最佳答案 免责声明:我不是delayed_job的专家用户...“是否有删除特定作业或与特定模型、实例等相关的作业的调用?”Delayed::Job只是一个ActiveRecord对象,因此您可以找到并销毁任何这些记录。根据您的用例,这可以用不同的方式处理。如果有人要手动销毁它们,这可以通过您的网络应用程序中的管理界面来处理。#listalljobsDelayed:
我无法从delayed_job获得任何日志输出,而且我不确定我的作业是否开始。这是我的Procfile:web:bundleexecrailsserverworker:bundleexecrakejobs:workworker:bundleexecclockworkapp/clock.rb这是工作:classScanningJobdefperformlogger.info"loggingfromdelayed_job"enddefafter(job)Rails.logger.info"loggingfromafterdelayed_job"endend我看到发条输出到系统输出,我可以看
我在部署我们的Rails应用程序时遇到问题。我创建了一个类似于AWS博客howto上示例的Hookhttp://ruby.awsblog.com/post/Tx2AK2MFX0QHRIO/Deploying-Ruby-Applications-to-AWS-Elastic-Beanstalk-with-Git喜欢:packages:yum:git:[]甚至我运行一个bundle来创建vendor/cache以将所有gems都放在那里......并且仍然得到:git://github.com/refinery/refinerycms-search.git(在2-0-stable)未che
Delayed::Job的自动重试功能很棒,但现在有一个作业我想手动重试。有没有一种方法我可以调用工作本身,比如...Delayed::Job.all[0].perform或者跑,或者什么的。我尝试了一些东西,并梳理了文档,但无法弄清楚如何执行作业的手动重试。 最佳答案 手动调用作业Delayed::Job.find(10).invoke_job#10isthejob.id如果成功运行,这不会删除作业。您需要手动将其删除:Delayed::Job.find(10).destroy 关于r
网络上是否有关于如何使用Monit监控delayed_job的示例??我能找到的所有东西都使用God,但我拒绝使用上帝,因为在Ruby中长时间运行的进程通常很糟糕。(上帝邮件列表中的最新帖子?GodMemoryUsageGrowsSteadily。)更新:delayed_job现在带有samplemonitconfig基于这个问题。 最佳答案 下面是我如何让它工作的。使用collectiveideaforkofdelayed_job除了积极维护之外,这个版本还有一个不错的script/delayed_job可以与monit一起使用的