У меня есть этот файл telegrambot.rbзадачи Rake внутри телеграммы бот жемчужину
require 'telegram/bot'
require 'rake'
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
Myapp::Application.load_tasks
token = "mytoken"
Telegram::Bot::Client.run(token) do |bot|
bot.listen do |message|
case message.text
when "Try"
pp "before task"
Rake::Task["alpha:try"].invoke
pp "after task"
end
end
end
Тогда в моих задач у меня есть эта задача, которая только прикасается продукт в БД:
namespace :alpha
task try: :environment do
pp "in the task"
prod = BaseProduct.first
prod.touch(:updated_at)
end
end
Теперь, если я отправить сообщение все работает как ожидалось, и я получаю «перед задачей» «в задаче» «после задачи» Также, если я проверил db, продукт был затронут. Но, если я отправлю сообщение снова, я получаю этот результат «Перед заданием» «после задачи» И, конечно, продукт не был затронут. Кроме того, никакая ошибка не возникает, как если бы команда, запускающая задачу, обходилась. Любые идеи?