conductor-sdk / conductor-python

Conductor OSS SDK for Python programming language
Apache License 2.0
52 stars 26 forks source link

PicklingError When Running helloworld Script #264

Open Ivancles opened 1 month ago

Ivancles commented 1 month ago

Hi everyone 👋,

I'm encountering a problem when trying to run the helloworld script. The error message I receive is a PicklingError related to multiprocessing. It seems that the issue is because I'm trying to pickle a function (book_ride) which can't be pickled since it's not the same object as services.booking_service.booking.book_ride.

I've attached an image of the error message below for reference.

Steps to Reproduce:

Clone the repository. Navigate to the helloworld directory. Run the script using the command python helloworld.py. Error Message: image

PicklingError: Can't pickle <function book_ride at 0x...>: it's not the same object as services.booking_service.booking.book_ride Additional Context:

From my investigation, it appears that the function book_ride is being referenced incorrectly in the context of multiprocessing, leading to the pickling issue.

Environment:

Python version: 3.10.14 Operating system: W10 Any other relevant details: conductor-python==1.1.5

Any help to resolve this issue would be greatly appreciated.

Thank you!

maRT-sk commented 3 days ago

I encountered the same issue and found a workaround. Here’s what I did:

    workers = [
        HelloWorker(task_definition_name='hello_task')
    ]
    configuration = Configuration()
    with TaskHandler(workers=workers, configuration=configuration) as task_handler:
        task_handler.start_processes()
        task_handler.join_processes()