mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-21 17:21:09 +01:00
git webhook test
This commit is contained in:
@@ -4,11 +4,15 @@ import sys
|
||||
from multiprocessing import Process
|
||||
|
||||
import click
|
||||
from celery import Celery
|
||||
from flask import Flask
|
||||
from flask_cors import CORS
|
||||
from flask_restful import Api
|
||||
|
||||
from constants.node import NodeStatus
|
||||
from db.manager import db_manager
|
||||
from routes.schedules import ScheduleApi
|
||||
from tasks.celery import celery_app
|
||||
from tasks.scheduler import scheduler
|
||||
|
||||
file_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
@@ -65,6 +69,25 @@ api.add_resource(ScheduleApi,
|
||||
'/api/schedules',
|
||||
'/api/schedules/<string:id>')
|
||||
|
||||
|
||||
def monitor_nodes_status(celery_app):
|
||||
def update_nodes_status(event):
|
||||
node_id = event.get('hostname')
|
||||
db_manager.update_one('nodes', id=node_id, values={
|
||||
'status': NodeStatus.ONLINE
|
||||
})
|
||||
|
||||
def update_nodes_status_online(event):
|
||||
print(event)
|
||||
|
||||
with celery_app.connection() as connection:
|
||||
recv = celery_app.events.Receiver(connection, handlers={
|
||||
'worker-heartbeat': update_nodes_status,
|
||||
# 'worker-online': update_nodes_status_online,
|
||||
})
|
||||
recv.capture(limit=None, timeout=None, wakeup=True)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# create folder if it does not exist
|
||||
if not os.path.exists(PROJECT_LOGS_FOLDER):
|
||||
@@ -73,5 +96,9 @@ if __name__ == '__main__':
|
||||
# run scheduler as a separate process
|
||||
scheduler.run()
|
||||
|
||||
# monitor node status
|
||||
p_monitor = Process(target=monitor_nodes_status, args=(celery_app,))
|
||||
p_monitor.start()
|
||||
|
||||
# run app instance
|
||||
app.run(host=FLASK_HOST, port=FLASK_PORT, threaded=True)
|
||||
|
||||
Reference in New Issue
Block a user