Skip to content

Releases: RSEmail/provoke

version 0.5.1

12 Aug 17:09
Compare
Choose a tag to compare
version 0.5.1 Pre-release
Pre-release
  • Fix a bug in the processes created by add_local_worker

    The _LocalProcess internal class was missing the expected process_callback attribute. Because the user has full control over the local process, the process_callback is unnecessary so the attribute was simply set to None.

version 0.5.0

26 Jul 02:15
Compare
Choose a tag to compare
version 0.5.0 Pre-release
Pre-release
  • Adds support for local workers for any processing that is not driven by an AMQP queue.
def log_frob_rate(state):
    while True:
        logger.debug('Frobs: {0}/min'.format(state.get_frobs()))
        state.reset_frobs()
        time.sleep(60.0)

app.add_local_worker(log_frob_rate, args=[my_state])
  • You can now override the name of the result queue with the result_queue argument to apply_async().
result = app.tasks.my_task.apply_async(['arg1', 'arg2'],
                                       send_results=True,
                                       result_queue='my_results')
  • Task result queues are no longer implicitly deleted once the first result is retrieved with calls to AsyncResult methods. You should explicitly call result.delete() to delete the queue if needed.
result = app.tasks.my_task.apply_async(['arg1', 'arg2'], send_results=True)
print result.get()
result.delete()
  • Task result queues may get results from many workers. This is useful for tasks that are published to many workers, where each worker will publish a result. The result.gather() method will yield new AsyncResult objects every time a result comes in.
results = app.tasks.my_task.apply_async(['arg1', 'arg2'],
                                        send_results=True,
                                        result_queue='my_results')
for res in results.gather():
    print res.get()

version 0.4.1

20 Jul 20:38
Compare
Choose a tag to compare
version 0.4.1 Pre-release
Pre-release
  • Result queue prefix

    The result queue had been fixed with names like result_53fb9628-0760-44b9-b0f1-3539738f65b5. With this release, the result_ prefix is a class attribute and may be changed.

version 0.4.0

08 Apr 19:19
Compare
Choose a tag to compare
version 0.4.0 Pre-release
Pre-release
  • Plugin reloading

    Re-loading the master process with a SIGHUP will now also reload all plugin modules.

  • Renamed executable

    The provoke-worker process is know simply provoke. The arguments it takes are unchanged since version 0.3.2.

  • Removed taskgroup concept

    The confusing taskgroup concept has been changed into simply an AMQP exchange and routing key pair. If neither are overridden, the default behavior delivers to the default exchange with the name of the task as the routing key.

  • AMQP heartbeat thread

    In worker processes, a separate thread is responsible for sending heartbeats at the agreed upon interval.

version 0.3.2

16 Feb 18:02
Compare
Choose a tag to compare
version 0.3.2 Pre-release
Pre-release
  • Changed to plugin system

    Previously, provoke attempted to import a Python module given on the command-line or in a config file. Now, using Plugin Discovery, known plugins are made available by name.

  • Configurable logging

    A separate logging configuration file can be specified in a provoke configuration file, which will be loaded using logging.config.fileConfig.

version 0.2.3

02 Feb 18:49
Compare
Choose a tag to compare
version 0.2.3 Pre-release
Pre-release

Expanded Python support:

  • CPython 2.6+
  • CPython 3.3+

version 0.2.1

02 Feb 18:48
Compare
Choose a tag to compare
version 0.2.1 Pre-release
Pre-release
version 0.2.1

version 0.1.0

02 Feb 18:48
Compare
Choose a tag to compare
version 0.1.0 Pre-release
Pre-release
version 0.1.0

version 0.0.0

12 Aug 13:45
Compare
Choose a tag to compare
version 0.0.0 Pre-release
Pre-release
shuffle around where things happen