Считайте работу ресурсом HTTP. Когда вы делаете POST /api/host
, этот запрос создает новый идентификатор для этой работы и возвращает его. Для правильного использования HTTP ответ должен содержать заголовок Location
с URL-адресом ресурса, где можно проверить статус задания, например:
POST /api/hosts
Content-type: application/json
{"data":"python /tmp/demo.py","action":"demo"}
HTTP/1.1 201 Created
Location: /api/host/jobs/c2de232b-f63e-4178-a053-d3f3459ab538
Теперь вы можете GET /api/host/jobs/c2de232b-f63e-4178-a053-d3f3459ab538
вв любое время и посмотрите, какое состояние имеет задание, например:
{"status": "pending"}
Вы можете POST
команды для этого ресурса, например, для его отмены.
Как именно ваш HTTP API получитстатус этого скрипта Python, очевидно, зависит от вас. Возможно, он может связываться с ним через сокет, или само задание будет периодически записывать свой статус в какую-либо базу данных или файл.