Get rid of dumb random uid and use current actor's uid
							parent
							
								
									f4af27953e
								
							
						
					
					
						commit
						14a7a129bd
					
				|  | @ -14,25 +14,20 @@ import tractor | ||||||
| 
 | 
 | ||||||
| @acm | @acm | ||||||
| async def open_actor_cluster( | async def open_actor_cluster( | ||||||
| 
 |  | ||||||
|     modules: list[str], |     modules: list[str], | ||||||
|     count: int = cpu_count(), |     count: int = cpu_count(), | ||||||
|     names: Optional[list[str]] = None, |     names: Optional[list[str]] = None, | ||||||
|     start_method: Optional[str] = None, |     start_method: Optional[str] = None, | ||||||
|     hard_kill: bool = False, |     hard_kill: bool = False, | ||||||
| 
 |  | ||||||
| ) -> AsyncGenerator[ | ) -> AsyncGenerator[ | ||||||
|     list[str], |     list[str], | ||||||
|     dict[str, tractor.Portal] |     dict[str, tractor.Portal] | ||||||
| ]: | ]: | ||||||
| 
 | 
 | ||||||
|     portals: dict[str, tractor.Portal] = {} |     portals: dict[str, tractor.Portal] = {} | ||||||
|     uid = str(__import__('random').randint(0, 2 ** 16)) |  | ||||||
|     # uid = tractor.current_actor().uid |  | ||||||
| 
 | 
 | ||||||
|     if not names: |     if not names: | ||||||
|         suffix = '_'.join(uid) |         names = [f'worker_{i}' for i in range(count)] | ||||||
|         names = [f'worker_{i}.' + suffix for i in range(count)] |  | ||||||
| 
 | 
 | ||||||
|     if not len(names) == count: |     if not len(names) == count: | ||||||
|         raise ValueError( |         raise ValueError( | ||||||
|  | @ -40,16 +35,17 @@ async def open_actor_cluster( | ||||||
| 
 | 
 | ||||||
|     async with tractor.open_nursery(start_method=start_method) as an: |     async with tractor.open_nursery(start_method=start_method) as an: | ||||||
|         async with trio.open_nursery() as n: |         async with trio.open_nursery() as n: | ||||||
|             for index, key in zip(range(count), names): |             uid = tractor.current_actor().uid | ||||||
| 
 | 
 | ||||||
|                 async def start(i) -> None: |             async def _start(name: str) -> None: | ||||||
|                     key = f'worker_{i}.' + '_'.join(uid) |                 name = f'{name}.{uid}' | ||||||
|                     portals[key] = await an.start_actor( |                 portals[name] = await an.start_actor( | ||||||
|                     enable_modules=modules, |                     enable_modules=modules, | ||||||
|                         name=key, |                     name=name, | ||||||
|                 ) |                 ) | ||||||
| 
 | 
 | ||||||
|                 n.start_soon(start, index) |             for name in names: | ||||||
|  |                 n.start_soon(_start, name) | ||||||
| 
 | 
 | ||||||
|         assert len(portals) == count |         assert len(portals) == count | ||||||
|         yield portals |         yield portals | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue