Tag: 延迟工作

在Heroku上运行delayed_job工作者?

所以现在我有一个delayed_job的实现,它完全适用于我的本地开发环境。 为了在我的机器上启动工作人员,我只是运行rake jobs:work并且它完美地工作。 为了让delayed_job在heroku上工作,我一直在使用几乎相同的命令: heroku run rake jobs:work 。 这个解决方案可以工作,我不需要为Heroku支付任何工作成本,但是我必须保持命令提示符窗口打开,否则我关闭它时delayed_job工作程序会停止。 是否有命令永久保持这个delayed_job工作程序即使在我关闭命令窗口时也能工作? 或者还有另一种更好的方法吗?

delayed_job在生产一段时间后停止运行

在生产中,我们的delayed_job进程因某种原因而死亡。 我不确定它是崩溃还是被操作系统杀死了什么。 我没有在delayed_job.log文件中看到任何错误。 我该怎么做才能解决这个问题? 我正在考虑安装monit来监控它,但这只能告诉我它何时死亡。 它不会真的告诉我为什么它会死。 有没有办法让它对日志文件更加健谈,所以我可以告诉它为什么会死? 还有其他建议吗?

Rails的cron任务的“delayed_job”真的吗?

delayed_job位于http://github.com/collectiveidea/delayed_job delayed_job能否执行cron任务? 比如每天凌晨1点运行脚本。 或者每1小时运行一次脚本。 如果没有,有什么合适的gem可以做到这一点? 是否可以使用浏览器远程监控,并记录成功和错误?

在Rails 3中为delayed_job自动扩展工作者

我一直在使用collectiveidea的delayed_job分叉作为我的Rails 3应用程序中的一个gem,它运行正常。 我现在正在寻找自动测量工作者的解决方案,特别是Heroku。 我试试过pedro的fork,但是因为它是为Rails 2编写的,所以使用它会抛出许多关于弃用方法的错误和警告,我无法让它成功运行。 是否有自动扩展工作者的Rails 3 delayed_job工作解决方案?

延迟作业未登录生产

我希望我的延迟作业“代码”登录不同的日志文件以满足业务需求。 所以我在名为dj.log的日志中记录自定义状态。 在“序列化”作业中,我将日志语句记录到我的文件中。 这是设置的方式 Delayed::Worker.destroy_failed_jobs = false Delayed::Worker.sleep_delay = 60 Delayed::Worker.max_attempts = 10 Delayed::Worker.delay_jobs = !( Rails.env.test? || Rails.env.development? ) #dont use delayed_job in development or test mode #Delayed_job custom logger DJ_LOGFILE = File.join(Rails.root, ‘log’, ‘dj.log’) 这是工人实际做的工作 people.each {|p| Mailer.mail(1233, p).deliver; sent_to << p.email } Logger.new(DJ_LOGFILE).info("[DELIVERED] All Emails delivered (#{sent_to.join(", ")})") 这可能是什么问题? 请帮忙

Rails / Rspec:测试delayed_job邮件

只是想知道如何测试动作邮件请求实际上是发送到rspec中的delayed_job que。 我原以为它很简单,但我的delayed_job队列似乎没有增加。 代码如下: 控制器: def create @contact = Contact.new(params[:contact]) if @contact.save contactmailer = ContactMailer contactmailer.delay.contact_message(@contact) redirect_to(contacts_url) else render :action => “new” end 规格: it “queues mail when a contact is created” do expectedcount = Delayed::Job.count + 1 Contact.stub(:new).with(mock_contact()) { mock_contact(:save => true) } post :create, :contact => mock_contact expectedcount.should eq(Delayed::Job.count) end 在调用控制器之前和之后,Delayed :: Job.count都返回0.我已经尝试从控制器中取出条件,但我仍然无法使延迟的作业数增加。 […]

处理非常长时间的rake任务

我有兴趣运行一个非常长时间的rake任务,一个需要几个小时才能完成的任务,我有兴趣了解处理这个问题的最佳实践。 我发现可能的解决方案: 设置一个cron作业 delayed_job的 resque cron似乎是一个简单的设置解决方案,但它是否适合长期任务? 您使用什么以及您的解决方案的优点/缺点是什么?

从设计发送延迟的电子邮件

有没有一种简单的方法告诉Devise通过delayed_job发送所有电子邮件?

在Heroku上免费运行延迟的工作

是否可以免费在Heroku上运行延迟的工作? 我正在尝试在Heroku上使用delayed_job_active_record 。 然而,它需要一个worker dyno ,如果我把这个dyno打开全职,它会花钱。 我认为使用Unicorn并使其工作人员延迟工作而不是Heroku工作人员,在成功运行所有工作的同时不会花费任何成本。 但是,Unicorn工作人员似乎并没有自动开始“工作”。 我的Procfile中有以下内容 。 web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb worker: bundle exec rake jobs:work 以及我的unicorn.rb中的以下内容 worker_processes 3 timeout 30 preload_app true before_fork do |server, worker| # Replace with MongoDB or whatever if defined?(ActiveRecord::Base) ActiveRecord::Base.connection.disconnect! Rails.logger.info(‘Disconnected from ActiveRecord’) end # If you are using Redis but not […]

延迟工作和行动邮件

我在使用ActionMailer实现延迟作业时遇到问题:在延迟执行作业之前: class NotificationsMailer “noreply@mycompany.com” default :to => “info@mycompany.com” def new_message(message) @message = message mail(:subject => “[Company Notification] #{message.subject}”) end end 并使用此行调用它(它工作得非常好): NotificationsMailer.new_message(@message).deliver 在延迟工作实施后,我所做的就是将交付线更改为: NotificationsMailer.delay.new_message(@message) 另外,我使用了启动作业队列 rake jobs:work 我可以看到数据库中的对象,如果作业已关闭,我可以看到它们在我启动工作后弹出但没有任何反应(没有发送电子邮件)。 更新 – 其他延迟任务(与邮件无关)工作正常。 任何人都可以帮助新手吗? 提前致谢!!