2016-12-27 13 views
1

Я работаю с веб-камерами Pybossa и нашел плагин this для анализа результатов Pybossa в режиме реального времени. Я разветвил его, но не понял, как его выполнить.Проблема в Pyhossa webhooks, как ее выполнить

В настоящее время, я уверен, выполнение его следующим образом:

питон app.py test_project

где test_project это мой project_short_name. Но он возвращает мне страницу index.html этого репозитория.

+0

Возможный дубликат http://stackoverflow.com/questions/40873109/access-pybossa-database-trough-terminal/41351184#41351184 –

+0

На мой взгляд, это не дубликат. Это касается выполнения задач обработки в реальном времени, а другой - об общем обслуживании pybossa через командную строку. Это вопрос автоматизации рабочего процесса, другой - вопрос интерфейса. –

+0

@JosephCoco Да. Это именно то, что я ищу по этому вопросу. Я могу выполнить и поддерживать Enki через командную строку, но то, что мне нужно, - это то, как обрабатывать задачи в реальном времени. –

ответ

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, чтобы я мог назвать ее удобным.

2

Я не настроил себя сам, но, похоже, вы запускаете как primary Pybossa site в дополнение к настраиваемому микросервису, который вы можете использовать от webhooks project.

  1. Установите и запустите основной сервер Pybossa и создайте учетную запись администратора.
  2. Установите и запустите вилку webhooks
  3. Захватите свой ключ API от account page администратора на вашем основном сервере PyBossa.
  4. В webhooks закройте файл settings.py.tmpl и обновите информацию, такую ​​как ключ API.
  5. Запустить микросервис.
  6. В Pybossa, Настройте свой проект для использования URL-адреса веб-хоста в ваших настройках.
  7. В webhooks загрузите страницу index.html.

Вы должны изменить диаграммы на индексной странице, чтобы отобразить результаты, которые вас интересуют. Но, как я уже сказал, это именно то, что я понимаю, нужно делать. Я не делал этого сам, так как я просто собираюсь изменить презентацию JS, чтобы использовать API для выполнения некоторых операций, которые я хочу, завися от ценности представленного ответа. Удачи.

+1

Как сказал Джозеф, это путь :-) Я разработчик PYBOSSA и решения webhooks. Микросервис webhooks должен запускаться параллельно с вашим сервером PYBOSSA. Это позволит анализировать результаты в реальном времени, а также публиковать их. –

+0

@ DanielLombrañaGonzález Можете ли вы добавить дополнительную документацию с примером, связанным с частью Webhooks. Я хочу использовать Enki как webhook. Я застрял на странице index.html без каких-либо результатов для возврата. –

+0

@ joseph-coco У меня есть сомнения.Чтобы запрос GET запускался на веб-узлах, должен быть некоторый триггер с сервера Pybossa. Нужно ли добавлять код запроса GET в любом месте моего кода Pybossa? Или, иначе, как именно это обрабатывается? –

 Смежные вопросы

  • Нет связанных вопросов^_^