com.linkedin.parseq.Task.setPriority()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(5.3k)|赞(0)|评价(0)|浏览(98)

本文整理了Java中com.linkedin.parseq.Task.setPriority()方法的一些代码示例,展示了Task.setPriority()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Task.setPriority()方法的具体详情如下:
包路径:com.linkedin.parseq.Task
类名称:Task
方法名:setPriority

Task.setPriority介绍

[英]Overrides the priority for this task. Higher priority tasks will be executed before lower priority tasks in the same context. In most cases, the default priority is sufficient.

The default priority is 0. Use priority < 0 to make a task lower priority and priority > 0 to make a task higher priority.

If the task has already started execution the priority cannot be changed.
[中]覆盖此任务的优先级。在同一上下文中,优先级较高的任务将在优先级较低的任务之前执行。在大多数情况下,默认优先级就足够了。
默认优先级为0。使用优先级<0可降低任务优先级,使用优先级>0可提高任务优先级。
如果任务已开始执行,则无法更改优先级。

代码示例

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

/**
 * {@inheritDoc}
 */
@Override
public boolean setPriority(int priority) {
 return _task.setPriority(priority);
}

代码示例来源:origin: linkedin/parseq

@Test
public void testSetPriorityAboveMaxValue() {
 try {
  TestUtil.noop().setPriority(Priority.MAX_PRIORITY + 1);
  fail("Should have thrown IllegalArgumentException");
 } catch (IllegalArgumentException e) {
  // Expected case
 }
}

代码示例来源:origin: linkedin/parseq

@Test
public void testSetPriorityBelowMinValue() {
 try {
  TestUtil.noop().setPriority(Priority.MIN_PRIORITY - 1);
  fail("Should have thrown IllegalArgumentException");
 } catch (IllegalArgumentException e) {
  // Expected case
 }
}

代码示例来源:origin: linkedin/parseq

@Override
 public Promise<Queue<Integer>> run(final Context context) throws Exception {
  final SettablePromise<Queue<Integer>> promise = Promises.settable();
  final Queue<Integer> queue = new LinkedList<Integer>();
  final Task<?> t1 = enqueueTask(queue, 1);
  t1.setPriority(-5);
  final Task<?> t2 = enqueueTask(queue, 2);
  t2.setPriority(10);
  final Task<?> t3 = enqueueTask(queue, 3);
  t3.setPriority(0);
  context.run(t1, t2, t3);
  context.after(t1, t2, t3).run(Task.action("done", () -> promise.done(queue)));
  return promise;
 }
};

代码示例来源:origin: linkedin/parseq

@Test
public void testSetPriorityAfterInit() {
 final int newPriority = 5;
 final Task<?> task = TestUtil.noop();
 assertTrue(task.setPriority(newPriority));
 assertEquals(newPriority, task.getPriority());
 assertInitOrScheduled(task);
}

代码示例来源:origin: linkedin/parseq

@Test
public void testSetPriorityAfterRun() throws InterruptedException {
 final String result = "result";
 final Task<String> task = Task.callable("task", () -> result);
 runTask(task);
 assertTrue(task.await(5, TimeUnit.SECONDS));
 assertFalse(task.setPriority(5));
 assertEquals(0, task.getPriority());
 assertDone(task, result);
}

代码示例来源:origin: linkedin/parseq

/** Create a wrapped task with associated recovery task that will retry if necessary. */
private Task<T> wrap(int attempt) {
 Task<T> retryTask = Task.async(_policy.getName() + ", attempt " + attempt, context -> {
  final SettablePromise<T> result = Promises.settable();
  Task<T> task = _taskFunction.apply(attempt);
  final Task<T> recovery = Task.async(_name + " recovery", recoveryContext -> {
   final SettablePromise<T> recoveryResult = Promises.settable();
   if (task.isFailed()) {
    // Failed task will cause retry to be scheduled.
    ErrorClassification errorClassification = _policy.getErrorClassifier().apply(task.getError());
    retry(attempt + 1, task.getError(), errorClassification, recoveryContext, recoveryResult);
   } else {
    recoveryResult.done(task.get());
   }
   return recoveryResult;
  });
  // Recovery task should run immediately after the original task to process its error.
  recovery.setPriority(Priority.MAX_PRIORITY);
  recovery.getShallowTraceBuilder().setSystemHidden(true);
  Promises.propagateResult(recovery, result);
  context.after(task).run(recovery);
  context.run(task);
  return result;
 });
 retryTask.getShallowTraceBuilder().setTaskType(TaskType.RETRY.getName());
 return retryTask;
}

相关文章