Что лучший способ состоит в том, чтобы запланировать задачу электронной почты отправки с Ruby on Rails?

Обычно люди используют CSV Data Set Config для этой формы параметризации.

  1. Добавить конфигурацию набора данных CSV в свой план тестирования
  2. Сконфигурировать его следующим образом:

    enter image description here

  3. Вот и все, теперь вы можете ссылаться на строку из CSV как ${message}, где это необходимо, каждый пользователь будет читать свою собственную строку, без дубликатов, когда все строки будут прочитаны - проверка закончится ,

    enter image description here

Другой вариант - использовать функцию __ StringFromFile () , однако в этом случае тест не остановится, вам нужно будет самостоятельно установить количество итераций. Также функция __StringFromFile() сохраняет весь файл в памяти, поэтому он не подходит для больших наборов данных.

10
задан Mithun Sreedharan 20 December 2011 в 06:29
поделиться

5 ответов

Другая опция состоит в том, чтобы создать задачу граблей, которая выполняется заданием крона. Чтобы сделать это, создайте файл some_file.rake и вставленный в него Ваш lib/tasks папка. Ваш файл мог бы быть похожим на это:

Направляющие 2.x:

task :send_daily_mail, :needs => :environment do
    Model.send_daily_mail
end

Направляющие 3.x:

task :send_daily_mail => :environment do
    Model.send_daily_mail
end

Затем используйте крон для выполнения его так часто, как Вам нравится:

cd /path/to/app && /usr/bin/rake send_daily_mail

Обратите внимание, что Вы, возможно, должны были бы поместить RAILS_ENV=production в Вашем crontab, если Ваше приложение находится в режиме разработки по умолчанию.

13
ответ дан 3 December 2019 в 17:22
поделиться

Я был впечатлен (и план попробовать) драгоценный камень rufus-планировщика, обсужденный в этом сообщении в блоге

Он описывает что-то вроде этого:

scheduler = Rufus::Scheduler.start_new  

scheduler.every("1m") do  
   DailyDigest.send_digest!  
end 

.. который кажется довольно простым. Интересно, как легкий это должно было бы добавить Основанную на HTML конфигурацию?

7
ответ дан 3 December 2019 в 17:22
поделиться

BackgroundRB - то, что я использую, и он работает прекрасный. У меня есть несколько электронных писем, посланных, сгенерированных BackgroundRB. У меня также есть другие задачи также. Поскольку это включает обе запланированных задачи и асинхронные задачи (задачи, которые занимают больше времени, чем нормальный клиент-серверный цикл ответа).

Я использую его, и я очень доволен им.

2
ответ дан 3 December 2019 в 17:22
поделиться

Добавьте метод класса для одной из Ваших моделей, которые обработают это для Вас. Теперь попытайтесь выполнить тот метод с помощью сценария бегуна

./script/runner "MyModel.send_daily_mail" RAILS_ENV=production

Удостоверьтесь, что все работает хорошо. Если это делает, то мы должны заставить команду работать универсально путем установки пути к проекту правильно.

cd /path/to/my/rails/project && ./script/runner "MyModel.send_daily_mail" RAILS_ENV=production

Теперь изменитесь на любой случайный directiry и выполните ту команду. Если это работает правильно, выполненный crontab -e и вставьте команду, там устанавливают для выполнения ежедневно в 7:00. Существует тонна объяснения о формате крона на там, если Вы гуглите для них и должны быть довольно просты выяснить.

1
ответ дан 3 December 2019 в 17:22
поделиться

Пойдите с задачей граблей и заданием крона, как уже говорится в принятом ответе. Однако обратите внимание, что, обновляя сам файл крона ручная задача. Это может быть прекрасным, если Вы не изменяете его во время разработки. Иначе здесь как можно позволить Capistrano сделать это для Вас: http://push.cx/2008/deploying-crontab-with-your-rails-app

0
ответ дан 3 December 2019 в 17:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: