我正在与Pybossa Webhooks一起工作,并找到了该插件来分析Pybossa的实时结果。我对它进行了分配,但没有得到如何执行。
目前,我正在执行如下:
python app.py test_project
其中test_project是我的project_short_name。但是,它正在将我恢复到index.html页面。
我还没有自己设置,但是除了可以从Webhooks Project提供的自定义微服务之外,您似乎还运行了两个主要的Pybossa网站。
- 安装并运行主Pybossa服务器并创建一个管理员帐户。
- 安装和运行webhooks fork
- 从主pybossa服务器上的管理员帐户页面中获取API键。
- 在webhooks中,克隆settings.py.tmpl并更新信息,例如api键。
- 运行微服务。
- 在Pybossa中,配置您的项目以在您的设置中使用Webhook URL。
- 在Webhooks中,加载index.html页。
您将更改索引页面上的图表以显示您感兴趣的结果。但是,就像我说的那样,这正是我所知道的。我没有自己做,因为我只是要修改主持人js来使用API执行一些我想要的操作,我希望取决于提交答案的价值。祝您好运。
我找到了它!查看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中,这样我就可以轻松地称呼它。