def METHOD_NAME(
    self,
    context: Context,
    token: Any,
    now: float,
    acc: MutableSequence[Metric],
) -> Task:
    prev = self._work_task
    async def cont() -> None:
        instance, items = uuid4(), 0
        interrupted = False
        with timeit(f"CANCEL WORKER -- {self._options.short_name}"):
            if prev:
                await cancel(prev)
        with suppress_and_log(), timeit(f"WORKER -- {self._options.short_name}"):
            await self._supervisor._reviewer.s_begin(
                token, assoc=self._options, instance=instance
            )
            try:
                async for items, completion in aenumerate(
                    self.work(context), start=1
                ):
                    metric = self._supervisor._reviewer.trans(
                        token, instance=instance, completion=completion
                    )
                    acc.append(metric)
            except CancelledError:
                interrupted = True
                raise
            finally:
                elapsed = monotonic() - now
                await self._supervisor._reviewer.s_end(
                    instance,
                    interrupted=interrupted,
                    elapsed=elapsed,
                    items=items,
                )
    self._work_task = task = create_task(cont())
    return task