Ruby on rails Ruby on Rails是否支持在Windows上异步处理\u?

Ruby on rails Ruby on Rails是否支持在Windows上异步处理\u?,ruby-on-rails,delayed-job,Ruby On Rails,Delayed Job,我正在Windows XP上试用,已经安装了所有必需的组件,但是agent.rb中的代码不起作用: # The call that doesn't work Agent.async_receive(agent.id, agents_to_events[agent.id].uniq) # ... def async_receive(agent_id, event_ids) # See github... end handle_asynchronously :async_r

我正在Windows XP上试用,已经安装了所有必需的组件,但是
agent.rb
中的代码不起作用:

    # The call that doesn't work
    Agent.async_receive(agent.id, agents_to_events[agent.id].uniq)

# ...

def async_receive(agent_id, event_ids)
   # See github...
end
handle_asynchronously :async_receive
如果我内联
async\u receive
代码,它工作正常,但是如果我查看
/delayed\u作业
,我会看到:

ID: 26
Priority: 10
Attempts: 0
Handler: --- !ruby/object:Delayed::PerformableMethod
         object: !ruby/class 'Agent'
         method_name: :async_receive_without_delay
         args: [...]
我注意到方法名已经变成了
:async\u receive\u without\u delay
,但我不知道这有什么意义


更新:我进一步注意到,运行
rake jobs:work
会导致上述
async\u receive
正常工作。我是否缺少某个初始化?

为了使通过
handle\u异步
delay
排队的作业得到执行,您需要运行一个或多个延迟作业实例。有不止一种方法可以做到这一点,其中之一就是

 rake jobs:work
另一个是

ruby script/delayed_job start

你可能希望设置一些类似上帝的东西来重新启动延迟的工作人员,如果他们停止工作的话

会发生什么?你是在拖延工作吗?你到底是什么意思?我添加了gem,但也许我错过了某个地方的初始化?我自己也得出了类似的结论。我发现了这个项目,它现在将我的事件移动到
delayed_job
队列中,所以现在如果我打开了两个DOS窗口,其中包含
bundle exec rails runner bin/schedule.rb
rake jobs:work
一切正常!有更好的方法吗?