【问题标题】:Rake tasks inside telegram bot gem在电报机器人宝石中耙任务
【发布时间】: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


    【解决方案1】:

    问题在于 rake 的调用方法,它只调用一次任务。 执行后为任务添加重新启用解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-18
      • 2014-08-06
      相关资源
      最近更新 更多