Фактически, даже если ваша переменная (SongLength) является числовой, вам все равно придется отформатировать ее с помощью% s, чтобы правильно привязать параметр. Если вы попытаетесь использовать% d, вы получите сообщение об ошибке. Вот небольшая выдержка из этой ссылки http://mysql-python.sourceforge.net/MySQLdb.html :
Для выполнения запроса сначала нужен курсор, а затем вы можете выполнить на нем запросы:
c=db.cursor()
max_price=5
c.execute("""SELECT spam, eggs, sausage FROM breakfast
WHERE price < %s""", (max_price,))
В этом примере max_price = 5 Зачем использовать% s в строке? Поскольку MySQLdb преобразует его в значение литерала SQL, которое представляет собой строку «5». Когда это будет закончено, запрос действительно скажет: «... WHERE price & lt; 5».
Может показаться глупым, но вы пытались поставить deliver_now
после метода mail
?
mail(
to: poll.owner.prefered_email,
subject: I18n.t('polls.mails.reminder.end_subject')
).deliver_now
Метод mail
только создает сообщение и отображает шаблон.
Решение пришло из https://nicholaide.github.io/sidekiq/2016/11/06/sidekiq-service.html упоминания о том, что переменные окружения должны быть установлены внутри описания службы systemd, поскольку переменные env не были взяты из пользовательских настроек bash:
/lib/systemd/system/sidekiq.service
[Service]
Type=simple
WorkingDirectory=/var/www/show_caster/code
ExecStart=/bin/bash -lc '/usr/local/rvm/gems/ruby-2.2.7/bin/bundler exec sidekiq -e production -q mailers -C config/sidekiq.yml -L log/sidekiq.log'
Environment=RAILS_ENV=production
Environment=SMTP_SERVER=<your_smtp_server>
Environment=SMTP_EMAIL=<email_adress>
Environment=SMTP_PASSWORD=<password>
User=sesame
Group=sesame
UMask=0002