Updates
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
"""The ``celery migrate`` command, used to filter and move messages."""
|
||||
import click
|
||||
from kombu import Connection
|
||||
|
||||
from celery.bin.base import CeleryCommand, CeleryOption, handle_preload_options
|
||||
from celery.contrib.migrate import migrate_tasks
|
||||
|
||||
|
||||
@click.command(cls=CeleryCommand)
|
||||
@click.argument('source')
|
||||
@click.argument('destination')
|
||||
@click.option('-n',
|
||||
'--limit',
|
||||
cls=CeleryOption,
|
||||
type=int,
|
||||
help_group='Migration Options',
|
||||
help='Number of tasks to consume.')
|
||||
@click.option('-t',
|
||||
'--timeout',
|
||||
cls=CeleryOption,
|
||||
type=float,
|
||||
help_group='Migration Options',
|
||||
help='Timeout in seconds waiting for tasks.')
|
||||
@click.option('-a',
|
||||
'--ack-messages',
|
||||
cls=CeleryOption,
|
||||
is_flag=True,
|
||||
help_group='Migration Options',
|
||||
help='Ack messages from source broker.')
|
||||
@click.option('-T',
|
||||
'--tasks',
|
||||
cls=CeleryOption,
|
||||
help_group='Migration Options',
|
||||
help='List of task names to filter on.')
|
||||
@click.option('-Q',
|
||||
'--queues',
|
||||
cls=CeleryOption,
|
||||
help_group='Migration Options',
|
||||
help='List of queues to migrate.')
|
||||
@click.option('-F',
|
||||
'--forever',
|
||||
cls=CeleryOption,
|
||||
is_flag=True,
|
||||
help_group='Migration Options',
|
||||
help='Continually migrate tasks until killed.')
|
||||
@click.pass_context
|
||||
@handle_preload_options
|
||||
def migrate(ctx, source, destination, **kwargs):
|
||||
"""Migrate tasks from one broker to another.
|
||||
|
||||
Warning:
|
||||
|
||||
This command is experimental, make sure you have a backup of
|
||||
the tasks before you continue.
|
||||
"""
|
||||
# TODO: Use a progress bar
|
||||
def on_migrate_task(state, body, message):
|
||||
ctx.obj.echo(f"Migrating task {state.count}/{state.strtotal}: {body}")
|
||||
|
||||
migrate_tasks(Connection(source),
|
||||
Connection(destination),
|
||||
callback=on_migrate_task,
|
||||
**kwargs)
|
||||
Reference in New Issue
Block a user