mirror of
https://github.com/wassname/ray.git
synced 2026-06-27 20:06:31 +08:00
[Core] Added support for submission-time task names. (#10449)
* Added support for submission-time task names. * Suggestions from code review: add missing consts Co-authored-by: SangBin Cho <rkooo567@gmail.com> * Add num_returns arg to actor method options docstring example. * Add process name line and proctitle assertion to submission-time task name section of advanced docs. * Add submission-time task name --> proctitle test for Python worker. * Added Python actor options tests for num_returns and name. * Added Java test for submission-time task names. * Add dashboard image to task name docs section. * Move to fstrings. Co-authored-by: SangBin Cho <rkooo567@gmail.com>
This commit is contained in:
@@ -12,9 +12,20 @@ public class BaseTaskCaller<T extends BaseTaskCaller<T>> {
|
||||
private CallOptions.Builder builder = new CallOptions.Builder();
|
||||
|
||||
/**
|
||||
* Set a custom resource requirement for resource {@code name}.
|
||||
* This method can be called multiple times. If the same resource is set multiple times,
|
||||
* the latest quantity will be used.
|
||||
* Set a name for this task.
|
||||
*
|
||||
* @param name task name
|
||||
* @return self
|
||||
* @see CallOptions.Builder#setName(java.lang.String)
|
||||
*/
|
||||
public T setName(String name) {
|
||||
builder.setName(name);
|
||||
return self();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a custom resource requirement for resource {@code name}. This method can be called multiple
|
||||
* times. If the same resource is set multiple times, the latest quantity will be used.
|
||||
*
|
||||
* @param name resource name
|
||||
* @param value resource capacity
|
||||
@@ -27,9 +38,8 @@ public class BaseTaskCaller<T extends BaseTaskCaller<T>> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Set custom requirements for multiple resources.
|
||||
* This method can be called multiple times. If the same resource is set multiple times,
|
||||
* the latest quantity will be used.
|
||||
* Set custom requirements for multiple resources. This method can be called multiple times. If
|
||||
* the same resource is set multiple times, the latest quantity will be used.
|
||||
*
|
||||
* @param resources requirements for multiple resources.
|
||||
* @return self
|
||||
@@ -48,5 +58,4 @@ public class BaseTaskCaller<T extends BaseTaskCaller<T>> {
|
||||
protected CallOptions buildOptions() {
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,26 +3,36 @@ package io.ray.api.options;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* The options for RayCall.
|
||||
*/
|
||||
/** The options for RayCall. */
|
||||
public class CallOptions extends BaseTaskOptions {
|
||||
|
||||
private CallOptions(Map<String, Double> resources) {
|
||||
public final String name;
|
||||
|
||||
private CallOptions(String name, Map<String, Double> resources) {
|
||||
super(resources);
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* This inner class for building CallOptions.
|
||||
*/
|
||||
/** This inner class for building CallOptions. */
|
||||
public static class Builder {
|
||||
|
||||
private String name;
|
||||
private Map<String, Double> resources = new HashMap<>();
|
||||
|
||||
/**
|
||||
* Set a custom resource requirement for resource {@code name}.
|
||||
* This method can be called multiple times. If the same resource is set multiple times,
|
||||
* the latest quantity will be used.
|
||||
* Set a name for this task.
|
||||
*
|
||||
* @param name task name
|
||||
* @return self
|
||||
*/
|
||||
public Builder setName(String name) {
|
||||
this.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a custom resource requirement for resource {@code name}. This method can be called
|
||||
* multiple times. If the same resource is set multiple times, the latest quantity will be used.
|
||||
*
|
||||
* @param name resource name
|
||||
* @param value resource capacity
|
||||
@@ -34,9 +44,8 @@ public class CallOptions extends BaseTaskOptions {
|
||||
}
|
||||
|
||||
/**
|
||||
* Set custom requirements for multiple resources.
|
||||
* This method can be called multiple times. If the same resource is set multiple times,
|
||||
* the latest quantity will be used.
|
||||
* Set custom requirements for multiple resources. This method can be called multiple times. If
|
||||
* the same resource is set multiple times, the latest quantity will be used.
|
||||
*
|
||||
* @param resources requirements for multiple resources.
|
||||
* @return self
|
||||
@@ -47,7 +56,7 @@ public class CallOptions extends BaseTaskOptions {
|
||||
}
|
||||
|
||||
public CallOptions build() {
|
||||
return new CallOptions(resources);
|
||||
return new CallOptions(name, resources);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package io.ray.test;
|
||||
|
||||
import io.ray.api.Ray;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** Task Name Test. */
|
||||
public class TaskNameTest extends BaseTest {
|
||||
|
||||
private static int testFoo() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/** Test setting task name at task submission time. */
|
||||
@Test
|
||||
public void testSetName() {
|
||||
Assert.assertEquals(0, (int) Ray.task(TaskNameTest::testFoo).setName("foo").remote().get());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user