【发布时间】:2016-11-01 16:01:40
【问题描述】:
我有这个 telegrambot.rb 文件
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
现在,如果我发送消息,一切都按预期工作,我得到 “任务前” “在任务中” “任务后” 另外,如果我检查数据库,产品已被触及。 但是,如果我再次发送消息,我会得到这个结果 “任务前” “任务后” 当然,产品还没有被触及。 此外,不会引发错误,就好像启动任务的指令被绕过了一样。 有什么想法吗?
【问题讨论】:
标签: ruby-on-rails rake telegram-bot rake-task