Я делаю приложение под названием книжный клуб.Много книг с голосами будет в системе.Каждый месяц первого числа месяца мне нужна система автоматического продвижения книги, набравшей наибольшее количество голосов, чтобы она стала «книгой месяца».Логика продвижения книги и обеспечения существования только одной книги месяца уже реализована.
book.promote!
Прекрасно, да?
У меня есть тестовый случай, спешащий
Given the following books exist:
| title | author | year_published | votes | created_at |
| Lord of the Flies | William Golding | 1954 | 18 | January 12, 2010 |
| The Virgin Suicides | Jeffrey Eugenides | 1993 | 12 | February 15, 2010 |
| Island | Richard Laymon | 1991 | 6 | November 22, 2009 |
And the book "Lord of the Flies" is the current book of the month
And the date is "February 24, 2010"
Then the book "Lord of the Flies" should be the current book of the month
When the date is "March 1, 2010"
And I am on the home page
Then I should see "This Month's Book of the Month Club Book"
And I should see "The Virgin Suicides"
And the book "The Virgin Suicides" should be the current book of the month
And the book "Lord of the Flies" should not be the current book of the month
And the book "Island" should not be the current book of the month
И я пытаюсь добиться этого.
Итак, вопрос в том, как лучше всего внедрить автоматическое обновление раз в месяц, которое можно протестировать по этому сценарию?
Крон слишком неряшливый, на мой вкус.Я хотел бы более портативное решение.
delayed_job / Resque кажется слишком тяжелым для ситуации.Также я немного не уверен, как заставить их запускать задания раз в месяц.
Просто ищу простое, но надежное и проверяемое решение.
Приветствия, как всегда!