代码之家  ›  专栏  ›  技术社区  ›  computer_smile

启动开发服务器时启动resque工作程序

  •  2
  • computer_smile  · 技术社区  · 11 年前

    当我启动开发服务器以测试resque调度程序中的一个新cron作业时,我想启动我的worker,所以我在启动dev-server时运行这个命令-

    QUEUE=* rake environment resque:work rails s
    

    它以前对我有效,如果我 reading their documentation correctly 应该仍然有效。

    但在它挂断后,我中断了它,然后出现了以下错误-

    ^Crake aborted!
    Don't know how to build task 'rails'
    

    这是我在键盘中断并运行后得到的结果 --trace

    ** Invoke environment (first_time)
    ** Execute environment
    ** Invoke resque:work (first_time)
    ** Invoke resque:preload (first_time)
    ** Invoke resque:setup (first_time)
    ** Invoke environment
    ** Execute resque:setup
    ** Execute resque:preload
    ** Invoke resque:setup
    ** Execute resque:work
    ^Crake aborted!
    Don't know how to build task 'rails'
    

    我不明白为什么我会得到错误,以及为什么它以前加载并工作过,但现在不再工作了。我在这里错过了什么?

    2 回复  |  直到 11 年前
        1
  •  5
  •   Viren    11 年前

    你确定你能成功地运行这个命令吗

    QUEUE=* rake environment resque:work rails s

    因为我知道 rails s rails列表命令不是rake任务吗

    可以运行连续的rake分隔空间,如

    QUEUE=* rake environment rake1 rake2 rake3

    但是你 无法运行 上面提到的rake和rails命令

    我从你在耙子上方的痕迹中看到了什么( 沥青耙 )现在正在运行,而不是通过您指定的第二个rake rails命令 要启动服务器,rake将其视为rake任务(这不是真的)

    我相信你在找这个

    QUEUE=* rake environment resque:work && rails s

    但我不相信你所说的会奏效,如果这里有什么冲突,请告诉我

    希望它有意义

        2
  •  4
  •   fabiosammy    10 年前

    这样更好:

    BACKGROUND=yes QUEUE=* PIDFILE=./tmp/resque.pid bundle exec rake environment resque:work
    

    然后:

    rails s
    

    如果您需要停止再培训工作人员:

    kill -QUIT $(cat ./tmp/resque.pid)