first commit

This commit is contained in:
远野千束 2024-10-13 17:28:37 +08:00
parent 5cb3424ad0
commit e151a7af0c
2 changed files with 18 additions and 4 deletions

View File

@ -1,10 +1,12 @@
from multiprocessing import Process as _Process from multiprocessing import Process as _Process
from typing import Callable, Any from typing import Callable, Any
from mypy.nodes import TypeAlias
from croterline.context import Context from croterline.context import Context
from croterline.utils import IsMainProcess from croterline.utils import IsMainProcess
type ProcessFuncType = Callable[[tuple[Any, ...], dict[str, Any]], None] ProcessFuncType: TypeAlias = Callable[[tuple[Any, ...], dict[str, Any]], None]
_current_ctx: "Context | None" = None # 注入当前进程上下文 _current_ctx: "Context | None" = None # 注入当前进程上下文
@ -49,6 +51,8 @@ def get_ctx() -> Context | None:
def _wrapper(func: ProcessFuncType, ctx: Context, *args, **kwargs): def _wrapper(func: ProcessFuncType, ctx: Context, *args, **kwargs):
print("args", args)
print("kwargs", kwargs)
global _current_ctx global _current_ctx
_current_ctx = ctx _current_ctx = ctx

View File

@ -5,6 +5,8 @@ from croterline.process import SubProcess, get_ctx
def p_func(*args, **kwargs): def p_func(*args, **kwargs):
print("Args", args)
print("Kwargs", kwargs)
i = 0 i = 0
ctx = get_ctx() ctx = get_ctx()
while True: while True:
@ -15,10 +17,16 @@ def p_func(*args, **kwargs):
ctx.sub_chan << "end" ctx.sub_chan << "end"
def p_func2(*args, **kwargs):
print("args: ", args)
print("kwargs: ", kwargs)
raise Exception("Test")
class TestSubProcess: class TestSubProcess:
def test_run(self): def test_run(self):
print("start") print("start")
sp = SubProcess("test", p_func, Context()) sp = SubProcess("test", p_func, Context(), 1, 2, 3, k1=1, k2=2)
sp.start() sp.start()
while True: while True:
@ -30,5 +38,7 @@ class TestSubProcess:
print("finished") print("finished")
sp.terminate() sp.terminate()
def test_decorator(self): def test_input(self):
pass print("test_input")
sp = SubProcess("test2", p_func2, Context(), 1, 2, 3, host=1, port=2)
sp.start()