我们在项目中使用delayed_job的命名队列。有没有办法将每个队列记录到单独的日志文件中?DelayedJob在这样的部署脚本中启动:run"cd#{current_path};RAILS_ENV=#{rails_env}script/delayed_job-p#{rails_env}-i1--queue=faststart"run"cd#{current_path};RAILS_ENV=#{rails_env}script/delayed_job-p#{rails_env}-i2start"我想要实现的是,在fast队列中运行的所有内容都将登录到log/delayed_job.f
我正在使用共享同一个数据库的多个heroku服务器。我想让每台服务器只为创建延迟作业条目的服务器处理延迟作业。例如:服务器A只处理队列“server_a”服务器A只处理队列“server_b”等...这可以通过使用延迟作业3(https://github.com/collectiveidea/delayed_job)来实现但是,要实现这一点,我需要为创建的每个延迟作业手动分配一个队列名称,这可能会很麻烦。(例如:object.delay(:queue=>'tracking').method)相反,我希望能够为所有新作业分配一个“默认队列”。理想情况下,我将类似这样的东西放在delaye
我在避免将重复作业添加到延迟作业队列的应用程序中时遇到问题。我做了一些搜索,但都没有结果。任何有关如何实现解决方案的建议都将不胜感激。我偶然发现的链接,但没有提供任何解决方案。https://github.com/collectiveidea/delayed_job/issues/72https://groups.google.com/forum/#!topic/delayed_job/gZ9bFCdZrsk 最佳答案 我不会专注于避免重复工作。在我看来,作业队列应该是转储而不是保持状态。将作业添加到队列中应该尽可能快。任何预先检查
我做了rakedb:create然后rakedb:migrate遇到了这个错误。rakeaborted!PGError:ERROR:relation"delayed_jobs"doesnotexistLINE4:WHEREa.attrelid='"delayed_jobs"'::regclass^:SELECTa.attname,format_type(a.atttypid,a.atttypmod),d.adsrc,a.attnotnullFROMpg_attributeaLEFTJOINpg_attrdefdONa.attrelid=d.adrelidANDa.attnum=d.ad
我正在从3.1.0开始运行RubyonRails3.2.2。我有问题undefinedmethodsend_register_email\'for#\n//.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-3.0.1/lib/delayed/performable_mailer.rb:6:inperform...使用许多其他人尝试解决的DelayedJobgem:有人成功地解决了这个问题,其他人则没有。如果我尝试了我在网上找到的所有解决方案,我属于后一类。此时,在我的Gemfile中我有:gem'rails','3.2.2'gem"rake"...g
我安装了一个delayed_job,然后启动守护进程以使用此Ruby脚本运行作业:require'rubygems'require'daemon_spawn'$:File.join(RAILS_ROOT,"log","delayed_job.log"),:pid_file=>File.join(RAILS_ROOT,'tmp','pids','delayed_job.pid'),:sync_log=>true,:working_dir=>RAILS_ROOT)如果我使用rvmsudo运行命令,它会完美运行。如果我只是在没有RVM的情况下使用Ruby命令,它会失败,这就是输出。我不知道为
我正在尝试使用delayed_job将更大的csv导入到我的rails数据库中。这是我的Controller和模型方法:Controller方法defimportInventoryItem.import(params[:file],params[:store_id])redirect_tovendors_dashboard_path,notice:"InventoryImported."end模型方法defself.import(file,store_id)CSV.foreach(file.path,headers:true)do|row|inventory_item=Inventor
当我启动Rails服务器时,我想在我的生产中启动脚本/delayed_job。无论如何我可以做到这一点吗?编辑::我已将此行添加到我的config/initializers/delayed_job.rb中。Delayed::Worker.new.start但是当我运行Rails应用程序时,我的延迟作业服务器没有启动。还有其他解决办法吗?? 最佳答案 我建议使用Capistrano部署您的应用程序并定义一个after:deployHook以在每次部署时启动/重启DJ。我还建议使用Resque而不是DelayedJob,因为后者往往会无
所以我遇到了一个奇怪的情况,我有delayed_job2.0.7和守护进程1.0.10以及ruby1.87和rails2.3.5在ScientificLinux6.3版(Carbon)上运行。我有一个rake任务,每晚重新启动延迟的作业,然后进行一堆批处理。我以前只是做rubyscript/delayed_job停止然后开始。我添加了一个命名队列的反向端口,允许我执行命名队列。因此,正因为如此,我想为每种类型的命名队列启动几个进程。为此,我发现最好的方法似乎是使用-i以不同方式命名每个进程,以免它们发生冲突。我编写了一些ruby代码来执行此循环,它在开发中运行良好,在命令行
我已经使用delayed_job在我的Rails应用程序中实现了长时间运行的任务连同delayed_job_web.我的delayed_job配置指示作业尝试一次,并保留失败:config/initializers/delayed_job.rb:Delayed::Worker.max_attempts=1Delayed::Worker.destroy_failed_jobs=false我尝试了2个自动引发错误的测试作业,以查看失败的行为。我得到的是以下内容:我的预期是失败的作业计数为2,但排队/工作/待处理都为0。我找不到任何关于确定工作是否入队/工作/待定的文件,甚至是工作之间的区别