我尝试使用来自 Netflix Conductor 的 Python 客户端代码来创建一个任务,但无论我如何称呼它,我都会遇到错误:
from conductor import conductor
import json
server_url = "http://localhost:8080/api"
task_def = '''[{
"name": "verify_if_idents_are_added",
"retryCount": 3,
"retryLogic": "FIXED",
"retryDelaySeconds": 10,
"timeoutSeconds": 300,
"timeoutPolicy": "TIME_OUT_WF",
"responseTimeoutSeconds": 180,
"ownerEmail": "a@a.com"
}]'''
metadataClient = conductor.MetadataClient(server_url)
metadataClient.registerTaskDef(task_def)
ERROR: {"status":400,"message":"Validation failed, check below errors for detail.","retryable":false,"validationErrors":[{"path":"updateTaskDef.arg0.ownerEmail","message":"ownerEmail cannot be empty"}]}
...
HTTPError: 400 Client Error: Bad Request for url: http://localhost:8080/api/metadata/taskdefs
还:
task_def_json = json.loads(task_def)
metadataClient.registerTaskDef(task_def_json)
获取:
ERROR: {"code":"INTERNAL_ERROR","message":"INTERNAL_ERROR - Cannot deserialize instance of `com.netflix.conductor.common.metadata.tasks.TaskDef` out of START_ARRAY token\n at [Source: (org.eclipse.jetty.server.HttpInputOverHTTP); line: 1, column: 1]","retryable":false,"instance":"d4f36b3da428"}
...
HTTPError: 500 Server Error: Internal Server Error for url: http://localhost:8080/api/metadata/taskdefs
如何使用此 Python 模块创建任务?