Skip to main content

PacketStatus

The status of a packet. The packet can be in one of the following states:
  • __INLINE_CODE_0__: The packet has been sent to a worker.
  • __INLINE_CODE_1__: The packet has been claimed by a worker and is being processed.
  • __INLINE_CODE_2__: The packet has been returned by the worker, meaning that the status of the task inside has been updated.
  • __INLINE_CODE_3__: The packet has been archived, meaning that the content of the task inside will not be changed. The task is considered as a dependency.

Packet

The basic element inside the channel. A task is wrapped inside a packet. The packet will contain the task, along with the task’s assignee, and the task’s status. Parameters:
  • task (Task): The task that is wrapped inside the packet.
  • publisher_id (str): The ID of the workforce that published the task.
  • assignee_id (Optional[str], optional): The ID of the workforce that is assigned to the task. Would be None if the task is a dependency. Defaults to None.
  • status (PacketStatus): The status of the task.

init

repr

TaskChannel

An internal class used by Workforce to manage tasks. This implementation uses a hybrid data structure approach:
  • Hash map (_task_dict) for O(1) task lookup by ID
  • Status-based index (_task_by_status) for efficient filtering by status
  • Assignee/publisher queues for ordered task processing

init

_update_task_status

Helper method to properly update task status in all indexes.

_cleanup_task_from_indexes

Helper method to remove a task from all indexes. Parameters:
  • task_id (str): The ID of the task to remove from indexes.