一尘不染

Pybossa webhooks中的问题,如何执行

redis

我正在使用Pybossa
Webhooks,并找到了插件来实时分析Pybossa结果。我分叉了它,但没有得到如何执行。

目前,我正在执行以下操作:

python app.py test_project

其中test_project是我的project_short_name。但是,它使我恢复到此存储库的index.html页面。


阅读 293

收藏
2020-06-20

共1个答案

一尘不染

我找到了
!查看pybossa.model.event_listeners您将找到的push_webhook功能,它将webhook推入队列。它由on_taskrun_submit, on_auditrun_submit同一文件中的函数调用。

如果您真的想手动执行webhook,请查看pybossa.jobs,您会找到webhook函数,这是webhook的执行位置。您可以像这样手动调用它:

def trigger_webhook(short_name, task_id=0, result_id=0):
    from pybossa.jobs import webhook
    from datetime import datetime
    from pybossa.core import project_repo

    with app.app_context():
        project = project_repo.get_by_shortname(short_name)

        payload = dict(event="task_completed",
                       project_short_name=project.short_name,
                       project_id=project.id,
                       task_id=task_id,
                       result_id=result_id,
                       fired_at=datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S"))
        webhook(project.webhook, payload)

我将此函数放在cli.py中,因此可以方便地调用它。

2020-06-20