Tag: cron

如何为Rails gem指定rvm gemsets?

MyApp使用的是rvm gemset 1.9.3@rails-3.2。 这不是默认的。 我正在使用gem“随时”定期发送电子邮件通知。 这是我的日程表.rb: every 1.minutes do runner “MyModel.send_emails” # if … end 除非gemset 1.9.3@rails-3.2是默认值,否则Cron作业不起作用。 我如何改进我的schedule.rb,以便为我的scheduller使用另一个gemsets(不仅是默认的@global)。 我已经阅读了官方文档: 无论何时和rvm问题以及有关“rvm gemsets for every”的stackoverflow问题,但都没有找到答案。 我试图在我的shedule.rb中放入以下代码(根据RVM-Notes中的建议): job_type :runner, “{ cd #{@current_path} > /home/####/.rvm/gems/ruby-1.9.3-p448@ rails-3.2/bin/rails; } && RAILS_ENV=:environment bundle exec rails runner ‘:task’ :output” 但它没有结果: ERROR: /home/###/.rvm/gems/ruby-1.9.3-p448@global/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92 :in `block in materialize’: Could not find i18n-0.6.5 in any of […]

Rails简单通讯/邮件列表,通过电子邮件通知新的搜索结果

我的用户可以保存他们的首选搜索。 现在我需要给他们订阅它们的可能性,以便在新的搜索结果可用时收到电子邮件通知(如雅虎答案)。 我已经设置了一个Mailer ,当手动触发时,它正常工作。 现在我需要做的就是从预定的工作中打电话给邮件但是……我真的不是那个领域的专家。 所以,在Whenever , Delayed_job , Sidekiq , Resque Scheduler &co。 我应该选择哪一个(或一个组合)来完成这种任务(多次邮寄的长时间运行过程)? 编辑 我开发了一个工作示例应用程序 ,可在Github上找到: NotiSearch 。 它有很好的记录,所以,如果你想开发类似的东西,我肯定会建议你检查一下。 PS:我选择依赖于never和delayed_job,因为它们没有外部依赖关系,如果需要它应该很容易转换到更具伸缩性的解决方案。

在活动开始前一小时触发的最佳方式

我有许多Appointment模型,它们在一天的不同时间开始,在:00,:15,:30,:45 。 我想在事件开始前1小时触发代码发送提醒。 使用后台工作程序触发此操作的最佳方法是什么? 我正在使用发条gem,所以我可以安排Sidekiq工人。

与Cron工作一起耙任务

我正在尝试设置cron作业来每天运行一个rake任务。 我目前有以下cron工作(请注意,时间全是*因为我希望它在测试时每分钟运行一次) * * * * * cd /home/jon/thestockenator/lib/tasks/ && ./get_current_data.sh 在shell脚本中,我将整个PATH添加到cron运行它时的路径,并调用rake test_task。 我设置了一个基本的rake任务,只输出一些文本(因为我的真实需要一段时间才能运行) task :test_task do puts “this is a rake task” end 在cron作业中运行时,cron作业肯定会运行并且which rake工作。

RoR – 放置自动化流程的位置

以下情况(ror 3,ruby 1.9)。 我有一些领域的模型。 现在我想抓住一个json feed(fe每小时)将内容与我存储的模型对象进行比较,如果这个json feed中有一个新项目,则放入一个新的模型对象。 我不知道在哪里放置这种自动化操作。 我不认为在模型方法中这样做是正确的,我是对的吗? 你会在哪里进行这种迁移行动? 在控制器? 不是我想的。 感谢所有提示

无论什么时候铁路都找不到耙子

你好我有一个奇怪的问题,我试图让rake任务随时工作,但是有这个问题Could not find rake-10.4.2 in any of the sources (Bundler::GemNotFound) 。 这很奇怪,因为它在ruby 2.1.2版本中搜索这个rake版本/home/vyivrain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/spec_set.rb:92 。 但是我在rvm中使用ruby 2.2.0并且gem列表也在使用该版本。 这是一个简单的cron工作: every 1.minute do rake ‘process_email:handle’, output: ‘log/mail.log’, environment: ‘development’ end Rake文件: namespace :process_email do desc ‘Handle email’ task handle: :environment do MOBIZARD_MAILER.processor.retrieve_mail end end Mobizard邮件程序是我自己的gem,它通过ruby邮件gem检索邮件,使用相同的ruby 2.2.0和相同的gem列表。 mail.log中的整个堆栈跟踪如下所示: /home/vyivrain/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.2/lib/bundler/spec_set.rb:92:in `block in materialize’: Could not find rake-10.4.2 in any of […]

Rails3,从cron运行rake任务

我在从cron运行我的rake任务时遇到问题,我将它包装在shell文件中,当我从控制台执行这个shell文件时,它运行正常。 #!/bin/sh if ps -ef | grep -v grep | grep create_all_accounts ; then exit 0 else cd /home/prosoftstudio/www/prosoftstudio_egabinet && /home/prosoftstudio/www/.ruby/gems/1.8/bin/rake gabinet:create_all_accounts RAILS_ENV=production –trace exit 0 fi crontab中的条目看起来像这样(我设置了PATH和GEM_PATH) PATH=/home/prosoftstudio/www/.python/bin:/usr/local/python2.6/bin:/home/prosoftstudio/www/.ruby/gems/1.8/bin/:/usr/local/ruby1.8/bin:/usr/local/bin:/usr/bin:/bin:/us$ GEM_PATH=/home/prosoftstudio/www/.ruby/gems/1.8:/home/prosoftstudio/www/.ruby/gems/1.8/bundler/gems:/usr/lib/ruby/gems/1.8/ */1 * * * * /home/prosoftstudio/www/cron_create_accounts.sh > cron_log.txt 2>&1 我得到的输出是 rake aborted! git://github.com/100hz/rails-settings.git (at master) is not checked out. Please run `bundle install` 好像它找不到安装的gem gem […]

Rails在特定时间段内执行Cron Job或Rake任务

我想在特定时间段内执行某项任务。 让我们说我想每半小时在早上6点到9点之间执行cronjob或一些rake任务。 所以脚本将执行6,6:30,7,7:30 ……并且最后是9。 你能不能给我一些建议,告诉我如何用Rails做到这一点。 不要告诉我安排6,6:30,7 ..时间段的个人任务。 ANS 我发现最简单的方法是每当gem使用并添加cronjob时间如下。 every ‘*/30 6-9 * * *’ do runner “Model.method” end

在Rails中安排一次性工作

我需要在rails中安排一个作业,其中一个方法将调用模型。 我知道有几个基于cron的gem,但这些都是为了重复工作,因为我需要在设定的时间只执行一次工作。 有没有gem可以做到这一点?

在达到最小订单后处理订单 – Rails 3

我的应用程序有交易,一旦达到最低订单金额就会下订单。 目前我已设置订单,订单在提交订单后立即放置,这些订单全部正常。 现在我需要更改流程,以便在达到交易的最小订单编号后处理订单。 我应该使用delayed_job还是cron进程? 这是我想要遵循的过程。 延迟订单直到达到最低订单 查找仍处于活动状态的交易 然后查找满足最低订单数量的交易 对于每个交易订单,循环并处理每个订单的捕获。 发送订单确认。 我的订单型号购买方式 def purchase response = OrderTransaction.gateway.purchase(order_amount, credit_card, options) transactions.create!(:action => “purchase”, :amount => order_amount, :response => response) response.success? end 我的订单控制器中的创建方法。 def create @member = current_member @order_deal = Deal.find(params[:deal_id]) @order = @order_deal.orders.build(params[:order]) @order.member_id = current_member.id @order.ip_address = request.remote_ip @deal = @order_deal if @order.save if @order.purchase MessageMailer.order_receipt(@order, […]