Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails中,如何安排任务来检查一些数据库值和发送提醒电子邮件?_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 在Rails中,如何安排任务来检查一些数据库值和发送提醒电子邮件?

Ruby on rails 在Rails中,如何安排任务来检查一些数据库值和发送提醒电子邮件?,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我需要我的系统每天计算一个会员的会员资格是否即将到期,并向他们发送电子邮件。我该怎么做 例如,如果我使用发条宝石,如何做到这一点?我不太清楚。我们如何通过时钟系统访问模型?我们如何将其用于Rails?我认为ReadMe告诉我们如何在纯Ruby中使用它。请帮忙。我是新来的。如何确保计划程序正在运行?尝试使用 它允许您执行rake任务。您可以从rake任务中引用您的模型。您考虑过吗 你可以这样做: # app/workers/membership_worker.rb class Membership

我需要我的系统每天计算一个会员的会员资格是否即将到期,并向他们发送电子邮件。我该怎么做

例如,如果我使用发条宝石,如何做到这一点?我不太清楚。我们如何通过时钟系统访问模型?我们如何将其用于Rails?我认为ReadMe告诉我们如何在纯Ruby中使用它。请帮忙。我是新来的。如何确保计划程序正在运行?

尝试使用 它允许您执行rake任务。您可以从rake任务中引用您的模型。

您考虑过吗

你可以这样做:

# app/workers/membership_worker.rb
class MembershipWorker
  include Sidekiq::Worker

  def perform(account_id)
    account = Account.find(account_id)
    message = "You have #{account.days_remaining}"
    # send reminder email
    # MembershipWorker.perform_in(1.day, account.id)
  end
end

# app/models/membership.rb
after_create ->{ MembershipWorker.perform_in(10.days, self.id) }      

只要在配置文件中包含Rails环境,就可以使用
clockwork

例如,您可以在Rails应用程序
config/clock.rb

require_relative 'boot'
require_relative 'environment'
require 'clockwork'

module Clockwork
  every(1.day, 'deliver-email', at: '00:00') {
    YourMailer.email(...).deliver
  }
end
和中提到了这一点

或者,您可以使用


我一直都在使用这两种方法,但现在我更喜欢
发条方法。请记住,
clockwork
从进程启动时开始计数。因此,如果您重新启动进程10次,电子邮件可能会发送10次。确保检查电子邮件未发送多次(通常的做法是保留传递日志)。

它可用于计划任务吗?可用于cron类型的计划任务。