提交 bb7df08b 编写于 作者: Z zhourui

loop for processingSignal

上级 864848dd
......@@ -82,28 +82,24 @@ public abstract class JpaObject extends GsonPropertyObject implements Serializab
public static final String scratchInteger_FIELDNAME = "scratchInteger";
public static final String properties_FIELDNAME = "properties";
public static final String JsonPropertiesValueHandler = "com.x.base.core.entity.annotation.JsonPropertiesValueHandler";
public static final List<String> FieldsUnmodify = ListUtils
.unmodifiableList(Arrays.asList(id_FIELDNAME, distributeFactor_FIELDNAME, createTime_FIELDNAME,
updateTime_FIELDNAME, sequence_FIELDNAME, scratchString_FIELDNAME, scratchBoolean_FIELDNAME,
scratchDate_FIELDNAME, scratchInteger_FIELDNAME, properties_FIELDNAME));
public static final List<String> FieldsUnmodify = ListUtils.unmodifiableList(Arrays.asList(id_FIELDNAME,
distributeFactor_FIELDNAME, createTime_FIELDNAME, updateTime_FIELDNAME, sequence_FIELDNAME,
scratchString_FIELDNAME, scratchBoolean_FIELDNAME, scratchDate_FIELDNAME, scratchInteger_FIELDNAME));
public static final List<String> FieldsUnmodifyExcludeId = ListUtils
.unmodifiableList(Arrays.asList(distributeFactor_FIELDNAME, createTime_FIELDNAME, updateTime_FIELDNAME,
sequence_FIELDNAME, scratchString_FIELDNAME, scratchBoolean_FIELDNAME, scratchDate_FIELDNAME,
scratchInteger_FIELDNAME, properties_FIELDNAME));
public static final List<String> FieldsUnmodifyExcludeId = ListUtils.unmodifiableList(Arrays.asList(
distributeFactor_FIELDNAME, createTime_FIELDNAME, updateTime_FIELDNAME, sequence_FIELDNAME,
scratchString_FIELDNAME, scratchBoolean_FIELDNAME, scratchDate_FIELDNAME, scratchInteger_FIELDNAME));
public static final List<String> FieldsInvisible = ListUtils.unmodifiableList(
Arrays.asList(distributeFactor_FIELDNAME, sequence_FIELDNAME, password_FIELDNAME, scratchString_FIELDNAME,
scratchBoolean_FIELDNAME, scratchDate_FIELDNAME, scratchInteger_FIELDNAME, properties_FIELDNAME));
scratchBoolean_FIELDNAME, scratchDate_FIELDNAME, scratchInteger_FIELDNAME));
public static final List<String> FieldsDefault = ListUtils
.unmodifiableList(Arrays.asList(id_FIELDNAME, key_FIELDNAME, createTime_FIELDNAME, updateTime_FIELDNAME,
sequence_FIELDNAME, distributeFactor_FIELDNAME, password_FIELDNAME, scratchString_FIELDNAME,
scratchBoolean_FIELDNAME, scratchDate_FIELDNAME, scratchInteger_FIELDNAME, properties_FIELDNAME));
scratchBoolean_FIELDNAME, scratchDate_FIELDNAME, scratchInteger_FIELDNAME));
@FieldDescribe("创建时间,自动生成,索引创建在约束中.")
@Column(name = ColumnNamePrefix + createTime_FIELDNAME)
......
......@@ -114,10 +114,10 @@ class ActionProcessing extends BaseAction {
new Thread(() -> {
RespProcessingSignal resp = null;
try {
resp = ThisApplication
.context().applications().getQuery(effectivePerson.getDebugger(),
x_processplatform_service_processing.class, Applications.joinQueryUri("work",
task.getWork(), "series", series, "processing", "signal"),
resp = ThisApplication.context().applications()
.getQuery(effectivePerson.getDebugger(), x_processplatform_service_processing.class,
Applications.joinQueryUri("work", task.getWork(), "series", series, "activitytoken",
this.task.getActivityToken(), "processing", "signal"),
task.getJob())
.getData(RespProcessingSignal.class);
} catch (Exception e) {
......
......@@ -162,6 +162,10 @@ public class Record extends SliceJpaObject {
return this.properties;
}
public void setProperties(RecordProperties properties) {
this.properties = properties;
}
public static final String application_FIELDNAME = "application";
@FieldDescribe("应用.")
@Column(length = JpaObject.length_id, name = ColumnNamePrefix + application_FIELDNAME)
......@@ -467,8 +471,6 @@ public class Record extends SliceJpaObject {
this.type = type;
}
public String getApplication() {
return application;
}
......
......@@ -3,6 +3,7 @@ package com.x.processplatform.core.entity.element.wrap;
import com.x.base.core.entity.JpaObject;
import com.x.base.core.project.bean.WrapCopier;
import com.x.base.core.project.bean.WrapCopierFactory;
import com.x.base.core.project.tools.ListTools;
import com.x.processplatform.core.entity.element.Route;
public class WrapRoute extends Route {
......@@ -10,8 +11,8 @@ public class WrapRoute extends Route {
private static final long serialVersionUID = 6333586002792120317L;
public static WrapCopier<Route, WrapRoute> outCopier = WrapCopierFactory.wo(Route.class, WrapRoute.class, null,
JpaObject.FieldsInvisible);
ListTools.toList(JpaObject.FieldsInvisible, Route.properties_FIELDNAME));
public static WrapCopier<WrapRoute, Route> inCopier = WrapCopierFactory.wi(WrapRoute.class, Route.class, null,
JpaObject.FieldsUnmodifyExcludeId);
ListTools.toList(JpaObject.FieldsUnmodifyExcludeId, Route.properties_FIELDNAME));
}
......@@ -16,33 +16,45 @@ class ActionProcessingSignal extends BaseAction {
ActionResult<Wo> execute(EffectivePerson effectivePerson, String id, String series, String activityToken)
throws Exception {
Wo wo = new Wo();
Wo wo = null;
int loop = 0;
Thread.sleep(Config.processPlatform().getProcessingSignalThreshold());
Optional<SignalStack> optional = ThisApplication.getProcessingToProcessingSignalStack().find(id, series);
while ((null == wo) && (loop++ < 50)) {
wo = dataReady(activityToken, ThisApplication.getProcessingToProcessingSignalStack().find(id, series));
if (null == wo) {
Thread.sleep(200);
}
}
int loop = 0;
if (null == wo) {
wo = new Wo();
wo.setSignalStack(new SignalStack());
}
while ((!optional.isPresent()) && (loop++ < 20)) {
Thread.sleep(200);
optional = ThisApplication.getProcessingToProcessingSignalStack().find(id, series);
ActionResult<Wo> result = new ActionResult<>();
result.setData(wo);
return result;
}
if (optional.isPresent()) {
private Wo dataReady(String activityToken, Optional<SignalStack> optional) {
if (!optional.isPresent()) {
return null;
}
Wo wo = new Wo();
optional.get().forEach(o -> {
if (((null != o.getManualExecute()) || (null != o.getSplitExecute()))
&& (!StringUtils.equals(activityToken, o.getActivityToken()))) {
wo.getSignalStack().add(o);
}
});
if (wo.getSignalStack().isEmpty()) {
return null;
} else {
wo.setSignalStack(new SignalStack());
return wo;
}
ActionResult<Wo> result = new ActionResult<>();
result.setData(wo);
return result;
}
public static class Wo extends ActionProcessingSignalWo {
......
......@@ -110,7 +110,7 @@ public class WorkAction extends StandardJaxrsAction {
@Path("{id}/series/{series}/activitytoken/{activityToken}/processing/signal")
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.APPLICATION_JSON)
public void processing(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
public void processingSignal(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
@JaxrsParameterDescribe("工作标识") @PathParam("id") String id,
@JaxrsParameterDescribe("串号") @PathParam("series") String series,
@JaxrsParameterDescribe("活动Token") @PathParam("activityToken") String activityToken) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册