Проблема в вебхуках Pybossa, как ее выполнить

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

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

python app.py test_project

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


person Daksh Agarwal    schedule 27.12.2016    source источник
comment
Возможный дубликат stackoverflow.com/questions/40873109 /   -  person Ted Taylor of Life    schedule 27.12.2016
comment
На мой взгляд, это не дубликат. Это касается выполнения задач в режиме реального времени, а другое касается общего обслуживания pybossa через командную строку. Это вопрос об автоматизации рабочего процесса, другой вопрос об интерфейсе.   -  person Joseph Coco    schedule 31.12.2016
comment
@ДжозефКоко Да. Это именно то, что я ищу по этому вопросу. Я могу запускать и поддерживать Enki через командную строку, но мне нужно, как обрабатывать выполнение задач в режиме реального времени.   -  person Daksh Agarwal    schedule 02.01.2017


Ответы (2)


Я нашел это ! Загляните в pybossa.model.event_listeners, вы найдете push_webhookfunction, она ставит веб-хук в очередь. И он вызывается функцией on_taskrun_submit, on_auditrun_submit в том же файле.

Если вы действительно хотите выполнить веб-перехватчик вручную, загляните в pybossa.jobs, вы найдете функцию 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, чтобы мне было удобно ее вызывать.

person Link    schedule 26.08.2017

Я не настраивал его сам, но, похоже, вы запускаете оба основной сайт Pybossa в дополнение к пользовательскому микросервису вы можете создать ответвление от проекта веб-перехватчиков.

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

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

person Joseph Coco    schedule 03.01.2017
comment
Как сказал Джозеф, это правильный путь :-) Я разработчик PYBOSSA и решения для веб-перехватчиков. Микросервис веб-перехватчиков должен работать параллельно с вашим сервером PYBOSSA. Это позволит анализировать результаты в режиме реального времени, а также публиковать их. - person Daniel Lombraña González; 03.01.2017
comment
@DanielLombrañaGonzález Не могли бы вы добавить больше документации с примером, относящимся к части Webhooks. Я хочу использовать Enki в качестве веб-перехватчика. Я застрял на странице index.html без каких-либо результатов. - person Daksh Agarwal; 21.03.2017
comment
@ joseph-coco У меня есть сомнения. Чтобы запрос GET выполнялся на веб-перехватчиках, должен быть какой-то триггер с сервера Pybossa. Нужно ли мне добавлять код запроса GET где-нибудь в моем коде Pybossa? Или, по-другому, как именно это обрабатывается? - person Daksh Agarwal; 22.03.2017
comment
@DakshAgarwal Можете ли вы уточнить, что вы подразумеваете под запросом GET для запуска веб-перехватчиков? Вы имеете в виду, что пользователь просто увидит страницу index.html веб-хука? Или вы имеете в виду, что PYBOSSA передает информацию о проекте/задаче/задаче_запуска в веб-хук? Я не думаю, что вам нужно писать дополнительный код, чтобы связать вебхуки и PYBOSSA вместе. Но если вы пытаетесь обслуживать вебхуки через PYBOSSA, я тоже не знаю, как это делается. Извините, я не могу больше помочь. - person Joseph Coco; 23.03.2017
comment
@JosephCoco Под запросом GET я имел в виду, как Pybossa будет передавать информацию о проекте/задаче/запуске задачи в веб-перехватчик, чтобы она была доступна для Enki в режиме реального времени. Я попытался выполнить без какого-либо дополнительного кода, но я не вижу никакого запроса, полученного в части веб-перехватчиков. - person Daksh Agarwal; 23.03.2017
comment
На самом деле я не устанавливал веб-хуки, так как это не соответствовало моему варианту использования. Я бы порекомендовал написать по электронной почте в службу поддержки scfabric/PYBOSSA, вы, вероятно, получите ответ от @DanielLombrañaGonzález в течение 24 часов. - person Joseph Coco; 23.03.2017
comment
@JosephCoco Я понял, что сообщение публикуется через веб-перехватчики. «python app_context_rqworker.py schedule_jobs сверхвысокий средний низкий уровень обслуживания электронной почты» помогает запускать веб-перехватчики. Но запуск этого одновременно не может работать с Pybossa. Итак, снова вебхуки не работают в режиме реального времени. На всякий случай написал автору. Спасибо за информацию. - person Daksh Agarwal; 24.03.2017
comment
Проблема в том, что вы, вероятно, используете один и тот же префикс redis для сервера PYBOSSA и Webhooks. В файле настроек для веб-перехватчиков есть возможность указать все, что вы хотите: github.com/Scifabric/webhooks/blob/master/ - person Daniel Lombraña González; 28.03.2017