SpiffWorkflow
python 流程引擎框架哪个好
Camunda 核心表介绍
https://zhuanlan.zhihu.com/p/645786758
camunda流程引擎基本使用(笔记)
https://blog.csdn.net/weixin_46949627/article/details/129255647
python连接FastDfs服务封装类
https://blog.csdn.net/weixin_57504427/article/details/139008166
https://blog.csdn.net/weixin_45118229/article/details/136218793
docker 查看默认仓库
docker info | grep “Registry”
修改默认仓库
https://blog.51cto.com/u_16213440/10332765
https://blog.csdn.net/weixin_41708548/article/details/119753413
https://www.jb51.net/server/294221m23.htm
https://lowcode.blog.csdn.net/article/details/136164213
https://blog.csdn.net/qq_45216885/article/details/132132430
https://docs.camunda.org/manual/latest/installation/docker/
https://blog.csdn.net/qq_46254997/article/details/122245164
https://blog.csdn.net/wxz258/article/details/117564836
https://blog.csdn.net/LCY133/article/details/132818421
pycamunda的官方文档:https://pycamunda.readthedocs.io/en/latest/src/usage.html
创建一个任务实例
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# pycamunda==0.6.1
import pycamunda.processdef
url = 'http://localhost:8080/engine-rest'
start_instance = pycamunda.processdef.StartInstance(url=url, key="Process_09bggk7", tenant_id='demo')
start_instance.add_variable(name='api', value=1)
process_instance = start_instance()
print(process_instance.__dict__)
worker消费一个任务实例
pip install git+https://github.com/OpenAvikom/camunda-external-task-client-python3
成功运行
#!/usr/bin/env python
# -*- coding:utf-8 -*-
url = 'http://172.31.187.203:8080/engine-rest'
import aiohttp
import asyncio
from camunda.external_task.external_task import ExternalTask
from camunda.external_task.external_task_worker import ExternalTaskWorker
from camunda.external_task.external_task_result import ExternalTaskResult
async def main():
# let's create an async http context with aiohttp
# aiohttp will close the connection when the worker returns (it won't though)
async with aiohttp.ClientSession() as session:
# We create a worker with a task id and pass the http session as well as the REST endpoint of Camunda.
# You need to change 'base_url' in case your Camunda engine is configured differently.
worker = ExternalTaskWorker(
worker_id=1, base_url=url, session=session
)
print("waiting for a task ...")
# Subscribe is an async function which will block until the worker is cancelled with `worker.cancel()`,
# In this example, no one will do this. We will stop the program with Ctrl+C instead
# When the worker detects a new task for the topic assigned to `topic_name` it will trigger the
# function/method passed to `action`.
await worker.subscribe(topic_names="auto_task", action=process)
# this will be called when a task for the subscribed topic is available
async def process(task: ExternalTask) -> ExternalTaskResult:
print("I got a task!")
print(task.context_variables)
# To communicate the successfull processing of a task, we return an ExternalTaskResult created by `task.complete` .
# If we call `task.failure` instead, Camunda will publish the task again until
# some client finally completes it or the maximum amount of retries is reached.
return task.complete()
# run the main task
asyncio.run(main())
lockDuration与asyncResponseTimeout
在Camunda BPMN流程引擎中,多个工作人员(Worker)轮询获取任务是通过以下几种方式实现的:
- 使用External Task Client,可以配置客户端以轮询方式获取任务。
- http://localhost:8080/engine-rest
- 使用Job Executor,可以配置多个工作人员执行作业。
在 Camunda 中,可以使用 Camunda 提供的用户界面和 API 来监控流程的执行情况。以下是几种常用的监控流程执行的方式:
1、使用 Camunda Cockpit:Camunda Cockpit 是 Camunda 官方提供的流程监控和管理工具,可以在浏览器中访问 Cockpit 界面,查看流程定义、流程实例、任务等详细信息,并可以进行任务处理、流程实例挂起/恢复等操作。
2、使用 Camunda Tasklist:Camunda Tasklist 是 Camunda 官方提供的任务管理工具,可以在浏览器中访问 Tasklist 界面,查看待处理任务和已处理任务,进行任务处理和操作。
3、使用 Camunda REST API:使用 Camunda 提供的 REST API,可以通过 GET 请求查询流程定义、流程实例、任务等信息,并通过 POST 请求进行任务处理和操作。
https://blog.csdn.net/weixin_46949627/article/details/129255647
https://blog.csdn.net/wxz258/article/details/117564836
https://blog.csdn.net/wxz258/article/details/136442339