2

我有一个 backroundrb 计划任务,需要很长时间才能运行。但是,似乎该过程仅在 2.5 分钟后就结束了。

我的 background.yml 文件:

:schedules:
  :named_worker:
    :task_name:
      :trigger_args: 0 0 12 * * * *
      :data: input_data

进程运行时,我在服务器上的活动为零。(这意味着我是服务器上唯一一个看着日志文件做他们的事情直到进程突然停止的人。)

有任何想法吗?

4

2 回答 2

3

这里没有太多信息可以让我们深入了解问题。因为 backgroundrb 在后台运行,所以很难监控/调试。

以下是我使用的一些想法:

  1. 编写一个单元测试来测试工作代码本身并确保那里没有问题
  2. 在代码中的多个点放置“puts”语句,这样您至少可以在工作程序运行时看到一些响应。
  3. 将整个工作人员包装在 begin..rescue..end 块中,以便您可以捕获可能发生的任何错误并缩短流程。
于 2008-09-25T06:51:51.913 回答
0

谢谢安德鲁。这些调试技巧有所帮助。尤其是 begin..rescue..end 块。

尽管如此,调试仍然很痛苦。最后不是BackgroundRB在2.5分钟后缩短。建立的网络连接未正确关闭。一旦找到并关闭它,一切都会很好。

于 2008-09-25T22:14:28.013 回答