Я нашел его! Посмотрите на 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, чтобы я мог назвать ее удобным.
Возможный дубликат http://stackoverflow.com/questions/40873109/access-pybossa-database-trough-terminal/41351184#41351184 –
На мой взгляд, это не дубликат. Это касается выполнения задач обработки в реальном времени, а другой - об общем обслуживании pybossa через командную строку. Это вопрос автоматизации рабочего процесса, другой - вопрос интерфейса. –
@JosephCoco Да. Это именно то, что я ищу по этому вопросу. Я могу выполнить и поддерживать Enki через командную строку, но то, что мне нужно, - это то, как обрабатывать задачи в реальном времени. –