camunda_temp

camunda-bpmn-用户任务(User Task)

0.2112020.10.12 16:02:25字数 2,724阅读 8,065

用户任务被用作给哪些需要人去完成的工作建模。当流程执行到用户任务时,一个新的任务被创建在任务列表里,任务将会分配给用户(user)或者组(group)

用户任务被定义成下面的xml,用户任务的id属性是必须的,名称属性是可选的

描述(Description):

       用户任务可以有一个描述,事实上,BPMN2.0的所有元素都可以有一个描述。描述被定义在一个附件的documentation元素中。

<userTask id="theTask" name="Schedule meeting" > <documentation> Schedule an engineering meeting for next week with the new hire. </documentation> 

描述文本可以通过一下方式获取:

task.getDescription();
属性(Properties):
1.到期日期(Due Date):

       每一个任务都有一个字段指明任务的到期时间,查询API可以用来查询任务到期日期在给定的时间之前或者之后
       有一个扩展的属性,可以用来指定一个表达式,用来在task创建的时候初始化任务的到期时间。表达式的值应该能被解析为Java的Date或者ISO8601标准的时间字符串或者null。当使用ISO8601格式的字符串时,你也可以指定一个确切的时间点或者一个时间段,或者一个相对于任务创建的时间段。例如,可以使用之前流程表单中输入的时间,或者在之前的服务任务中技术的时间。

<userTask id="theTask" name="Important task" camunda:dueDate="${dateVariable}"/>

       到期时间可以TaskService或者或者在TaskListeners中用通过的DelegateTask来修改到期时间

2.跟催时间(Follow Up Date):

       每个任务都有一个字段指明任务的跟催时间,查询API可以用来查询任务跟催日期在一个给定时间之前或者之后

<userTask id="theTask" name="Important task" camunda:followUpDate="${dateVariable}"/>
3.用户分配(User Assignment):

       用户任务可以直接分配给一个单个用户,一个用户列表,或者一个组列表

4.使用BPMN资源分配的任务(Assignment using BPMN Resource Assignments):

       BPMN定义了一些可以在本地使用的赋值概念。作为一个更强大的代替方案,camunda还定义了一系列的定制扩展元素。

4.1.人的行为(Human Performer):

       这是通过定义一个humanPerformer来实现的。humanPerformer定义需要一个事件上定义了用户的的resourceAssignmentExpression。目前只支持formalExpressions
       只能将一个用户作为human performer分配给该任务。在引擎术语中,此用户称为受让人(assignee)。具有受让人(assignee)的任务在其他用户的任务列表中不可见,而可以在受让人(assignee)的所谓个人任务列表中找到。

       直接分配给用户的任务可以通过TaskService获取到:

List<Task> tasks = taskService.createTaskQuery().taskAssignee("kermit").list(); 
4.2.潜在的拥有者(Potential Owner):

       任务也可以放在所谓的候选任务人员列表中。在这个例子中,potentialOwner必须被使用。这个使用与humanPerformer类似。请注意,如意每个元素用这种方式表示,它要求指明定义的是一个用户或者是一个组。

<process ... > ... <userTask id='theTask' name='important task' 
<think> 我们正在讨论Nginx中的临时目录,特别是client_body_temp、fastcgi_temp、proxy_temp、scgi_temp和uwsgi_temp这些目录的作用。根据引用[1]中的配置信息,这些目录是在Nginx编译时通过配置选项指定的,用于存储临时文件。 1. client_body_temp: 当Nginx作为反向代理或处理客户端请求时,客户端(如浏览器)发送的请求体(例如文件上传)可能会很大,Nginx会先将这些数据写入临时文件,而不是全部放在内存中。`client_body_temp`目录就是用来存放这些临时请求体文件的。这可以避免因为大请求体而耗尽内存。 2. proxy_temp: 当Nginx作为反向代理时,它从后端服务器接收响应数据。如果响应数据较大,Nginx会先将这些数据存储到临时文件中,然后再发送给客户端。`proxy_temp`目录就是用来存放这些从后端服务器接收的临时响应数据的。 3. fastcgi_temp: 当Nginx通过FastCGI协议与后端应用(如PHP-FPM)通信时,从FastCGI服务器返回的响应数据如果很大,也会先存储到临时文件中。`fastcgi_temp`目录用于存放这些临时文件。 4. scgi_temp: 类似于FastCGI,SCGI(Simple Common Gateway Interface)也是一种与后端应用通信的协议。`scgi_temp`目录用于存放Nginx作为SCGI客户端时,从SCGI服务器接收的响应数据的临时文件。 5. uwsgi_temp: uWSGI是一个Web应用服务器,通常用于运行Python应用(如Django、Flask)。当Nginx通过uWSGI协议与uWSGI服务器通信时,从uWSGI服务器返回的响应数据如果很大,就会存储到`uwsgi_temp`目录下的临时文件中。 总结: 这些临时目录的作用都是类似的:当Nginx在处理请求时,如果遇到较大的请求体或响应体,为了避免占用过多内存,会将这些数据暂存到磁盘上的临时文件中。每个目录对应不同的协议或处理阶段。 引用[1]中给出了这些目录的配置路径,例如: --http-client-body-temp-path=/usr/local/nginx/client_body_temp \ --http-proxy-temp-path=/usr/local/nginx/proxy_temp \ --http-fastcgi-temp-path=/usr/local/nginx/fastcgi_temp \ --http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp \ --http-scgi-temp-path=/usr/local/nginx/scgi_temp \ 在实际运行中,我们需要确保这些目录存在,并且Nginx进程有读写权限,否则可能导致错误。 另外,引用[3]提到了uWSGI协议的一些特性,包括进程管理和监控,但与我们讨论的临时目录关系不大。引用[4]展示了Nginx的upstream配置和location配置,其中使用了`proxy_pass`指令,这可能会用到`proxy_temp`目录。 因此,这些临时目录是Nginx在处理不同协议和不同阶段时,为了缓冲大文件而设置的磁盘存储区域。 §§相关问题§§ 1. 如何配置Nginx的临时目录路径? 2. 如果Nginx的临时目录权限设置不正确会导致什么问题? 3. 如何清理Nginx的临时目录?是否有自动清理机制? 4. 这些临时目录在Nginx的请求处理流程中具体是在哪个阶段被使用? </think> ### Nginx临时目录作用详解 在Nginx中,`client_body_temp`、`fastcgi_temp`、`proxy_temp`、`scgi_temp`和`uwsgi_temp`目录都是用于处理请求和响应数据的临时缓冲区。它们的作用如下: 1. **client_body_temp** - 存储**客户端请求体**的临时文件 - 当客户端上传大文件(如表单提交/文件上传)时 - 防止大请求体直接占用内存 - 路径配置:`--http-client-body-temp-path=/usr/local/nginx/client_body_temp`[^1] 2. **proxy_temp** - 缓存**反向代理响应**的临时文件 - 当Nginx作为反向代理从后端服务器获取大响应时 - 实现响应数据的流式处理 - 路径配置:`--http-proxy-temp-path=/usr/local/nginx/proxy_temp`[^1] 3. **fastcgi_temp** - 存储**FastCGI协议响应**的临时文件 - 处理PHP/Python等应用的动态内容输出 - 当FastCGI进程返回大响应时缓存数据 - 路径配置:`--http-fastcgi-temp-path=/usr/local/nginx/fastcgi_temp`[^1] 4. **uwsgi_temp** - 缓存**uWSGI协议响应**的临时文件 - 专门用于Python应用服务器(uWSGI)的响应数据 - 支持进程管理和负载均衡场景[^3] - 路径配置:`--http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp`[^1] 5. **scgi_temp** - 存储**SCGI协议响应**的临时文件 - 用于替代CGI的轻量级协议处理 - 路径配置:`--http-scgi-temp-path=/usr/local/nginx/scgi_temp`[^1] ### 共同特点 - **磁盘缓冲**:避免大流量请求/响应耗尽内存 - **协议适配**:不同目录对应不同后端协议 - **自动清理**:Nginx会自动管理这些临时文件 - **路径配置**:编译时通过`--http-*-temp-path`指定[^1] - **权限要求**:Nginx工作进程需要读写权限 > 示例配置片段: > ```nginx > --http-client-body-temp-path=/usr/local/nginx/client_body_temp \ > --http-proxy-temp-path=/usr/local/nginx/proxy_temp \ > --http-fastcgi-temp-path=/usr/local/nginx/fastcgi_temp \ > --http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp \ > --http-scgi-temp-path=/usr/local/nginx/scgi_temp \ > ```[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值