- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中org.apache.helix.task.WorkflowContext.getWorkflowState()
方法的一些代码示例,展示了WorkflowContext.getWorkflowState()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。WorkflowContext.getWorkflowState()
方法的具体详情如下:
包路径:org.apache.helix.task.WorkflowContext
类名称:WorkflowContext
方法名:getWorkflowState
暂无
代码示例来源:origin: apache/incubator-pinot
/**
* Get the task queue state for the given task type.
*
* @param taskType Task type
* @return Task queue state
*/
public synchronized TaskState getTaskQueueState(@Nonnull String taskType) {
return _taskDriver.getWorkflowContext(getHelixJobQueueName(taskType)).getWorkflowState();
}
代码示例来源:origin: apache/helix
Thread.sleep(timeToSleep);
ctx = getWorkflowContext(workflowName);
} while ((ctx == null || ctx.getWorkflowState() == null || !allowedStates
.contains(ctx.getWorkflowState())) && System.currentTimeMillis() < st + timeout);
if (ctx == null || !allowedStates.contains(ctx.getWorkflowState())) {
throw new HelixException(String.format(
"Workflow \"%s\" context is empty or not in states: \"%s\", current state: \"%s\"",
workflowName, Arrays.asList(targetStates),
ctx == null ? "null" : ctx.getWorkflowState().toString()));
return ctx.getWorkflowState();
代码示例来源:origin: org.apache.helix/helix-core
Thread.sleep(timeToSleep);
ctx = getWorkflowContext(workflowName);
} while ((ctx == null || ctx.getWorkflowState() == null || !allowedStates
.contains(ctx.getWorkflowState())) && System.currentTimeMillis() < st + timeout);
if (ctx == null || !allowedStates.contains(ctx.getWorkflowState())) {
throw new HelixException(String.format(
"Workflow \"%s\" context is empty or not in states: \"%s\", current state: \"%s\"",
workflowName, targetStates.toString(),
ctx == null ? "null" : ctx.getWorkflowState().toString()));
return ctx.getWorkflowState();
代码示例来源:origin: org.apache.helix/helix-core
public void refreshWorkflowsStatus(TaskDriver driver) {
for (WorkflowMonitor workflowMonitor : _perTypeWorkflowMonitorMap.values()) {
workflowMonitor.resetGauges();
}
Map<String, WorkflowConfig> workflowConfigMap = driver.getWorkflows();
for (String workflow : workflowConfigMap.keySet()) {
if (workflowConfigMap.get(workflow).isRecurring() || workflow.isEmpty()) {
continue;
}
WorkflowContext workflowContext = driver.getWorkflowContext(workflow);
TaskState currentState = workflowContext == null ? TaskState.NOT_STARTED : workflowContext.getWorkflowState();
updateWorkflowGauges(workflowConfigMap.get(workflow), currentState);
}
}
public void updateWorkflowCounters(WorkflowConfig workflowConfig, TaskState to) {
代码示例来源:origin: apache/helix
public void refreshWorkflowsStatus(TaskDriver driver) {
for (Map.Entry<String, WorkflowMonitor> workflowMonitor : _perTypeWorkflowMonitorMap
.entrySet()) {
workflowMonitor.getValue().resetGauges();
}
Map<String, WorkflowConfig> workflowConfigMap = driver.getWorkflows();
for (String workflow : workflowConfigMap.keySet()) {
if (workflowConfigMap.get(workflow).isRecurring() || workflow.isEmpty()) {
continue;
}
WorkflowContext workflowContext = driver.getWorkflowContext(workflow);
TaskState currentState = workflowContext == null ? TaskState.NOT_STARTED : workflowContext.getWorkflowState();
updateWorkflowGauges(workflowConfigMap.get(workflow), currentState);
}
}
public void updateWorkflowCounters(WorkflowConfig workflowConfig, TaskState to) {
代码示例来源:origin: org.apache.helix/helix-core
/**
* Public sync method to stop a workflow/queue with timeout
*
* Basically the workflow and all of its jobs has been stopped if this method return success.
*
* @param workflow The workflow name
* @param timeout The timeout for stopping workflow/queue in milisecond
*/
public void waitToStop(String workflow, long timeout) throws InterruptedException {
setWorkflowTargetState(workflow, TargetState.STOP);
long endTime = System.currentTimeMillis() + timeout;
while (System.currentTimeMillis() <= endTime) {
WorkflowContext workflowContext = getWorkflowContext(workflow);
if (workflowContext == null || TaskState.IN_PROGRESS.equals(workflowContext.getWorkflowState())) {
Thread.sleep(1000);
} else {
// Successfully stopped
return;
}
}
// Failed to stop with timeout
throw new HelixException(String
.format("Fail to stop the workflow/queue %s with in %d milliseconds.", workflow, timeout));
}
代码示例来源:origin: apache/helix
/**
* Public sync method to stop a workflow/queue with timeout
*
* Basically the workflow and all of its jobs has been stopped if this method return success.
*
* @param workflow The workflow name
* @param timeout The timeout for stopping workflow/queue in milisecond
*/
public void waitToStop(String workflow, long timeout) throws InterruptedException {
setWorkflowTargetState(workflow, TargetState.STOP);
long endTime = System.currentTimeMillis() + timeout;
while (System.currentTimeMillis() <= endTime) {
WorkflowContext workflowContext = getWorkflowContext(workflow);
if (workflowContext == null || TaskState.IN_PROGRESS.equals(workflowContext.getWorkflowState())) {
Thread.sleep(1000);
} else {
// Successfully stopped
return;
}
}
// Failed to stop with timeout
throw new HelixException(String
.format("Fail to stop the workflow/queue %s with in %d milliseconds.", workflow, timeout));
}
代码示例来源:origin: apache/helix
protected void updateWorkflowMonitor(WorkflowContext context, WorkflowConfig config) {
if (_clusterStatusMonitor != null) {
_clusterStatusMonitor.updateWorkflowCounters(config, context.getWorkflowState(),
context.getFinishTime() - context.getStartTime());
}
}
代码示例来源:origin: org.apache.helix/helix-core
protected void updateWorkflowMonitor(WorkflowContext context, WorkflowConfig config) {
if (_clusterStatusMonitor != null) {
_clusterStatusMonitor.updateWorkflowCounters(config, context.getWorkflowState(),
context.getFinishTime() - context.getStartTime());
}
}
代码示例来源:origin: com.linkedin.gobblin/gobblin-cluster
if (wCtx != null && wCtx.getWorkflowState() == null) {
throw new IllegalStateException("Queue " + queueName + " does not have a valid work state!");
代码示例来源:origin: org.apache.helix/helix-core
/**
* delete a job from a scheduled (non-recurrent) queue.
*
* @param queue
* @param job
*/
private void deleteJobFromQueue(final String queue, final String job) {
WorkflowContext workflowCtx = TaskUtil.getWorkflowContext(_propertyStore, queue);
String workflowState = (workflowCtx != null)
? workflowCtx.getWorkflowState().name()
: TaskState.NOT_STARTED.name();
if (workflowState.equals(TaskState.IN_PROGRESS.name())) {
throw new IllegalStateException("Queue " + queue + " is still running!");
}
if (workflowState.equals(TaskState.COMPLETED.name()) || workflowState.equals(
TaskState.FAILED.name()) || workflowState.equals(TaskState.ABORTED.name())) {
LOG.warn("Queue " + queue + " has already reached its final state, skip deleting job from it.");
return;
}
String namespacedJobName = TaskUtil.getNamespacedJobName(queue, job);
Set<String> jobs = new HashSet<>(Arrays.asList(namespacedJobName));
if (!TaskUtil.removeJobsFromWorkflow(_accessor, _propertyStore, queue, jobs, true)) {
LOG.error("Failed to delete job " + job + " from queue " + queue);
throw new HelixException("Failed to delete job " + job + " from queue " + queue);
}
}
代码示例来源:origin: apache/helix
/**
* Remove all jobs that are in final states (ABORTED, FAILED, COMPLETED) from the job queue. The
* job config, job context will be removed from Zookeeper.
*
* @param queue The name of job queue
*/
public void cleanupQueue(String queue) {
WorkflowConfig workflowConfig = TaskUtil.getWorkflowConfig(_accessor, queue);
if (workflowConfig == null) {
throw new IllegalArgumentException("Queue " + queue + " does not yet exist!");
}
boolean isTerminable = workflowConfig.isTerminable();
if (isTerminable) {
throw new IllegalArgumentException(queue + " is not a queue!");
}
WorkflowContext wCtx = TaskUtil.getWorkflowContext(_propertyStore, queue);
if (wCtx == null || wCtx.getWorkflowState() == null) {
throw new IllegalStateException("Queue " + queue + " does not have a valid work state!");
}
Set<String> jobs = new HashSet<String>();
for (String jobNode : workflowConfig.getJobDag().getAllNodes()) {
TaskState curState = wCtx.getJobState(jobNode);
if (curState != null && (curState == TaskState.ABORTED || curState == TaskState.COMPLETED
|| curState == TaskState.FAILED)) {
jobs.add(jobNode);
}
}
TaskUtil.removeJobsFromWorkflow(_accessor, _propertyStore, queue, jobs, true);
}
代码示例来源:origin: apache/helix
/**
* delete a job from a scheduled (non-recurrent) queue.
*
* @param queue
* @param job
*/
private void deleteJobFromQueue(final String queue, final String job) {
WorkflowContext workflowCtx = TaskUtil.getWorkflowContext(_propertyStore, queue);
String workflowState = (workflowCtx != null)
? workflowCtx.getWorkflowState().name()
: TaskState.NOT_STARTED.name();
if (workflowState.equals(TaskState.IN_PROGRESS.name())) {
throw new IllegalStateException("Queue " + queue + " is still running!");
}
if (workflowState.equals(TaskState.COMPLETED.name()) || workflowState.equals(
TaskState.FAILED.name()) || workflowState.equals(TaskState.ABORTED.name())) {
LOG.warn("Queue " + queue + " has already reached its final state, skip deleting job from it.");
return;
}
String namespacedJobName = TaskUtil.getNamespacedJobName(queue, job);
Set<String> jobs = new HashSet<>(Arrays.asList(namespacedJobName));
if (!TaskUtil.removeJobsFromWorkflow(_accessor, _propertyStore, queue, jobs, true)) {
LOG.error("Failed to delete job " + job + " from queue " + queue);
throw new HelixException("Failed to delete job " + job + " from queue " + queue);
}
}
代码示例来源:origin: org.apache.helix/helix-core
/**
* Remove all jobs that are in final states (ABORTED, FAILED, COMPLETED) from the job queue. The
* job config, job context will be removed from Zookeeper.
*
* @param queue The name of job queue
*/
public void cleanupQueue(String queue) {
WorkflowConfig workflowConfig = TaskUtil.getWorkflowConfig(_accessor, queue);
if (workflowConfig == null) {
throw new IllegalArgumentException("Queue " + queue + " does not yet exist!");
}
boolean isTerminable = workflowConfig.isTerminable();
if (isTerminable) {
throw new IllegalArgumentException(queue + " is not a queue!");
}
WorkflowContext wCtx = TaskUtil.getWorkflowContext(_propertyStore, queue);
if (wCtx == null || wCtx.getWorkflowState() == null) {
throw new IllegalStateException("Queue " + queue + " does not have a valid work state!");
}
Set<String> jobs = new HashSet<String>();
for (String jobNode : workflowConfig.getJobDag().getAllNodes()) {
TaskState curState = wCtx.getJobState(jobNode);
if (curState != null && (curState == TaskState.ABORTED || curState == TaskState.COMPLETED
|| curState == TaskState.FAILED)) {
jobs.add(jobNode);
}
}
TaskUtil.removeJobsFromWorkflow(_accessor, _propertyStore, queue, jobs, true);
}
代码示例来源:origin: org.apache.helix/helix-core
.getAllNodes());
String workflowState =
(wCtx != null) ? wCtx.getWorkflowState().name() : TaskState.NOT_STARTED.name();
LOG.info("Current state of workflow is " + workflowState);
LOG.info("Job states are: ");
代码示例来源:origin: apache/helix
@Test
public void testWorkflowAndJobTaskUserContentStore() throws InterruptedException {
String jobName = TestHelper.getTestMethodName();
Workflow.Builder workflowBuilder = new Workflow.Builder(jobName);
List<TaskConfig> taskConfigs = Lists.newArrayListWithCapacity(1);
Map<String, String> taskConfigMap = Maps.newHashMap();
TaskConfig taskConfig1 = new TaskConfig("ContentStoreTask", taskConfigMap);
taskConfigs.add(taskConfig1);
Map<String, String> jobCommandMap = Maps.newHashMap();
jobCommandMap.put("Timeout", "1000");
JobConfig.Builder jobBuilder = new JobConfig.Builder().setCommand("DummyCommand")
.addTaskConfigs(taskConfigs).setWorkflow(jobName)
.setJobCommandConfigMap(jobCommandMap);
workflowBuilder.addJob(jobName, jobBuilder);
_driver.start(workflowBuilder.build());
_driver.pollForWorkflowState(jobName, TaskState.COMPLETED);
Assert
.assertEquals(_driver.getWorkflowContext(jobName).getWorkflowState(), TaskState.COMPLETED);
}
代码示例来源:origin: apache/helix
@Test
public void testStopWorkflow() throws InterruptedException {
String jobQueueName = TestHelper.getTestMethodName();
JobConfig.Builder jobBuilder = JobConfig.Builder.fromMap(WorkflowGenerator.DEFAULT_JOB_CONFIG)
.setMaxAttemptsPerTask(1).setWorkflow(jobQueueName)
.setJobCommandConfigMap(ImmutableMap.of(MockTask.SUCCESS_COUNT_BEFORE_FAIL, "1"));
JobQueue.Builder jobQueue = TaskTestUtil.buildJobQueue(jobQueueName);
jobQueue.enqueueJob("job1_will_succeed", jobBuilder);
jobQueue.enqueueJob("job2_will_fail", jobBuilder);
_driver.start(jobQueue.build());
// job1 should succeed and job2 should fail, wait until that happens
_driver.pollForJobState(jobQueueName,
TaskUtil.getNamespacedJobName(jobQueueName, "job2_will_fail"), TaskState.FAILED);
Assert.assertTrue(
_driver.getWorkflowContext(jobQueueName).getWorkflowState().equals(TaskState.IN_PROGRESS));
// Now stop the workflow, and it should be stopped because all jobs have completed or failed.
_driver.waitToStop(jobQueueName, 4000);
_driver.pollForWorkflowState(jobQueueName, TaskState.STOPPED);
Assert.assertTrue(
_driver.getWorkflowContext(jobQueueName).getWorkflowState().equals(TaskState.STOPPED));
}
代码示例来源:origin: apache/helix
/**
* Tests that stopping a workflow does result in its task ending up in STOPPED state.
* @throws InterruptedException
*/
@Test
public void testStopTask() throws InterruptedException {
stopTestSetup(1);
String workflowName = TestHelper.getTestMethodName();
Workflow.Builder workflowBuilder = new Workflow.Builder(workflowName);
WorkflowConfig.Builder configBuilder = new WorkflowConfig.Builder(workflowName);
configBuilder.setAllowOverlapJobAssignment(true);
workflowBuilder.setWorkflowConfig(configBuilder.build());
for (int i = 0; i < 1; i++) {
List<TaskConfig> taskConfigs = new ArrayList<>();
taskConfigs.add(new TaskConfig("StopTask", new HashMap<String, String>()));
JobConfig.Builder jobConfigBulider = new JobConfig.Builder().setCommand("Dummy")
.addTaskConfigs(taskConfigs).setJobCommandConfigMap(new HashMap<String, String>());
workflowBuilder.addJob("JOB" + i, jobConfigBulider);
}
_driver.start(workflowBuilder.build());
_driver.pollForWorkflowState(workflowName, TaskState.IN_PROGRESS);
// Stop the workflow
_driver.stop(workflowName);
_driver.pollForWorkflowState(workflowName, TaskState.STOPPED);
Assert.assertEquals(_driver.getWorkflowContext(_manager, workflowName).getWorkflowState(),
TaskState.STOPPED);
}
代码示例来源:origin: apache/helix
String workflowName = workflowNames.get(i);
TaskState state = (i % 3 == 1) ? TaskState.FAILED : TaskState.COMPLETED;
Assert.assertEquals(_driver.getWorkflowContext(_manager, workflowName).getWorkflowState(),
state);
代码示例来源:origin: apache/helix
Assert.assertEquals(_driver.getWorkflowContext(_manager, workflowNameToStop).getWorkflowState(),
Assert.assertEquals(_driver.getWorkflowContext(_manager, workflowToComplete).getWorkflowState(),
TaskState.COMPLETED);
我尝试理解[c代码 -> 汇编]代码 void node::Check( data & _data1, vector& _data2) { -> push ebp -> mov ebp,esp ->
我需要在当前表单(代码)的上下文中运行文本文件中的代码。其中一项要求是让代码创建新控件并将其添加到当前窗体。 例如,在Form1.cs中: using System.Windows.Forms; ..
我有此 C++ 代码并将其转换为 C# (.net Framework 4) 代码。有没有人给我一些关于 malloc、free 和 sprintf 方法的提示? int monate = ee; d
我的网络服务器代码有问题 #include #include #include #include #include #include #include int
给定以下 html 代码,将列表中的第三个元素(即“美丽”一词)以斜体显示的 CSS 代码是什么?当然,我可以给这个元素一个 id 或一个 class,但 html 代码必须保持不变。谢谢
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我试图制作一个宏来避免重复代码和注释。 我试过这个: #define GrowOnPage(any Page, any Component) Component.Width := Page.Surfa
我正在尝试将我的旧 C++ 代码“翻译”成头条新闻所暗示的 C# 代码。问题是我是 C# 中的新手,并不是所有的东西都像 C++ 中那样。在 C++ 中这些解决方案运行良好,但在 C# 中只是不能。我
在 Windows 10 上工作,R 语言的格式化程序似乎没有在 Visual Studio Code 中完成它的工作。我试过R support for Visual Studio Code和 R-T
我正在处理一些报告(计数),我必须获取不同参数的计数。非常简单但乏味。 一个参数的示例查询: qCountsEmployee = ( "select count(*) from %s wher
最近几天我尝试从 d00m 调试网络错误。我开始用尽想法/线索,我希望其他 SO 用户拥有可能有用的宝贵经验。我希望能够提供所有相关信息,但我个人无法控制服务器环境。 整个事情始于用户注意到我们应用程
我有一个 app.js 文件,其中包含如下 dojo amd 模式代码: require(["dojo/dom", ..], function(dom){ dom.byId('someId').i
我对“-gencode”语句中的“code=sm_X”选项有点困惑。 一个例子:NVCC 编译器选项有什么作用 -gencode arch=compute_13,code=sm_13 嵌入库中? 只有
我为我的表格使用 X-editable 框架。 但是我有一些问题。 $(document).ready(function() { $('.access').editable({
我一直在通过本教程学习 flask/python http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-wo
我想将 Vim 和 EMACS 用于 CNC、G 代码和 M 代码。 Vim 或 EMACS 是否有任何语法或模式来处理这种类型的代码? 最佳答案 一些快速搜索使我找到了 this vim 和 thi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve this
这个问题在这里已经有了答案: Enabling markdown highlighting in Vim (5 个回答) 6年前关闭。 当我在 Vim 中编辑包含 Markdown 代码的 READM
我正在 Swift3 iOS 中开发视频应用程序。基本上我必须将视频 Assets 和音频与淡入淡出效果合并为一个并将其保存到 iPhone 画廊。为此,我使用以下方法: private func d
pipeline { agent any stages { stage('Build') { steps { e
我是一名优秀的程序员,十分优秀!