mirror of
https://github.com/wassname/ray.git
synced 2026-09-09 11:32:43 +08:00
Allow remote functions to specify max executions and kill worker once limit is reached. (#660)
* implement restarting workers after certain number of task executions * Clean up python code. * Don't start new worker when an actor disconnects. * Move wait_for_pid_to_exit to test_utils.py. * Add test. * Fix linting errors. * Fix linting. * Fix typo.
This commit is contained in:
committed by
Robert Nishihara
parent
4374ad1453
commit
54925996ca
@@ -14,6 +14,7 @@ import time
|
||||
import unittest
|
||||
|
||||
import ray.test.test_functions as test_functions
|
||||
import ray.test.test_utils
|
||||
|
||||
if sys.version_info >= (3, 0):
|
||||
from importlib import reload
|
||||
@@ -1315,6 +1316,27 @@ class WorkerPoolTests(unittest.TestCase):
|
||||
|
||||
ray.worker.cleanup()
|
||||
|
||||
def testMaxCallTasks(self):
|
||||
ray.init(num_cpus=1)
|
||||
|
||||
@ray.remote(max_calls=1)
|
||||
def f():
|
||||
return os.getpid()
|
||||
|
||||
pid = ray.get(f.remote())
|
||||
ray.test.test_utils.wait_for_pid_to_exit(pid)
|
||||
|
||||
@ray.remote(max_calls=2)
|
||||
def f():
|
||||
return os.getpid()
|
||||
|
||||
pid1 = ray.get(f.remote())
|
||||
pid2 = ray.get(f.remote())
|
||||
self.assertEqual(pid1, pid2)
|
||||
ray.test.test_utils.wait_for_pid_to_exit(pid1)
|
||||
|
||||
ray.worker.cleanup()
|
||||
|
||||
|
||||
class SchedulingAlgorithm(unittest.TestCase):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user