如何在Pybossa中配置webhook

时间:2017-08-10 06:58:09

标签: python webhooks pybossa

Pybossa没有描述如何配置webhook。

我在配置webhook时遇到了一些问题,下面是我的步骤:

  1. fork pybossa webhook示例
  2. 使用默认设置运行webhook(修改后的api_key和端点)。
  3. 在Pybossa中,修改项目并添加webhook以指向运行URL的webhook。
  4. 打开命令行窗口并执行以下命令:
  5.   

    #rqworker high

    然后当任务完成时,我看到命令行窗口中有日志。抱怨以下我得到以下错误:

    14:06:11 *** Listening on high...
    14:07:42 high: pybossa.jobs.webhook(u'http://192.168.116.135:5001', {'project_short_name': u'tw', 'task_id': 172, 'fired_at': '2017-08-10 06:07:42', 'project_id': 17, 'result_id': 75, 'event': 'task_completed'}) (e435386c-615d-4525-a65d-f08f0afd2351)
    14:07:44 UnboundLocalError: local variable 'project' referenced before assignment
    Traceback (most recent call last):
      File "/home/baib2/Desktop/pybossa_server/env/local/lib/python2.7/site-packages/rq/worker.py", line 479, in perform_job
          rv = job.perform()
      File "/home/baib2/Desktop/pybossa_server/env/local/lib/python2.7/site-packages/rq/job.py", line 466, in perform
          self._result = self.func(*self.args, **self.kwargs)
      File "./pybossa/jobs.py", line 525, in webhook
          if project.published and webhook.response_status_code != 200 and current_app.config.get('ADMINS'):
      UnboundLocalError: local variable 'project' referenced before assignment
    

    我不确定是否应该执行以下命令

      

    #rqworker high

    但如果这个rqworker没有运行,我就不会看到任何组件从redis队列中获取工作。

1 个答案:

答案 0 :(得分:0)

您需要运行特定的工作人员,而不是PYBOSSA的默认工作人员。只需使用https://github.com/Scifabric/pybossa/blob/master/app_context_rqworker.py就可以运行它:

python app_context_rqworker.py high

这将设置Flask上下文,它将正常运行; - )

我们正在改进我们的文档,所以在接下来的几个月里应该会更好。