I have implemented websocket in Django app using Django-channels, now the front-end send some data through the websocket and i want the current running celery task to be able to read it. I tried creating shared memory static object, but not working.
   SimulationInputs.add(simulation_id=simulation.id, init_data=init_inputs)
    return InteractiveSimulationTask.delay_or_fail(
        simulation_id=simulation.id
    )
class SimulationData:
    data = ''
class SimulationInputs:
    data = None
    @classmethod
    def init_manager(cls, manager):
        manager = Manager()
        cls.data = manager.dict()
    @classmethod
    def add(cls, simulation_id, init_data):
        cls.data[simulation_id] = init_data
    @classmethod
    def write(cls, simulation_id, simulation_data):
        if cls.data.get(simulation_id):
            cls.data[simulation_id] = simulation_data
    @classmethod
    def read(cls, simulation_id, simulation_data):
        simulation_data.data = cls.data.get(simulation_id)
# manage.y
if __name__ == "__main__":
    SimulationInputs.init_manager()
class InteractiveSimulationTask(JobtasticTask):
     def calculate_result(self, simulation_id, **kwargs):
         while True:
           SimulationInputs.read(simulation_id=self.simulation.id, simulation_data=simulation_data)   
The task always throw exception cls.data.get(simulation_id): NoneObjectType has no method get
I need to share data between the celery task and the main process.
Any hint?
 
    