def METHOD_NAME(
        once,
        sleep_time: int = 10,
        bulk: int = 100,
        ignore_availability: bool = False,
        partition_wait_time: int = 10,
        transfertools=None,
        cached_topology=None,
        total_threads=1
):
    # Make an initial heartbeat so that all instanced daemons have the correct worker number on the next try
    executable = DAEMON_NAME
    if not transfertools:
        transfertools = config_get_list('conveyor', 'transfertool', False, None)
    @db_workqueue(
        once=once,
        graceful_stop=GRACEFUL_STOP,
        executable=executable,
        partition_wait_time=partition_wait_time,
        sleep_time=sleep_time)
    def _db_producer(*, activity: str, heartbeat_handler: "HeartbeatHandler"):
        return _fetch_requests(
            bulk=bulk,
            ignore_availability=ignore_availability,
            cached_topology=cached_topology,
            heartbeat_handler=heartbeat_handler,
            set_last_processed_by=not once,
        )
    def _consumer(batch):
        return _handle_requests(
            batch,
            transfertools=transfertools,
            bulk=bulk,
        )
    ProducerConsumerDaemon(
        producers=[_db_producer],
        consumers=[_consumer for _ in range(total_threads)],
        graceful_stop=GRACEFUL_STOP,
    ).run()