This module is useful for running complex 3rd party programs in the backend to analyze/process data stored in the Drupal database. Through Drupal admin interface, you simply issue any pre-defined data processing commands into a queue, which are executed later by the 3rd party programs (perhaps on a remote server) asynchronously.

What features you'll find in this module:

  • A Java library (jar file) to connect to the Drupal database. External 3rd party program can use this library to get data from Drupal database, do some computation, and save the data back to the database.
  • A queue management system to coordinate command executions between Drupal and 3rd party programs.
  • Views integration to display execution history.
  • Triggers/Actions to send notifications of command execution status (to be implemented).
  • REST/Web Services support (to be implemented).
  • Integration with other modules: Drush, Services (to be implemented).

What features you'll find in the Java library (drupal-app.jar):

  • JDBC Connection pooling to Drupal database.
  • Java class hierarchy (or framework) to help you write your Java/Jython/JRuby/R/shell program.
  • Multi-threading for parallel computing.
  • Execute Drush command, which means you can execute any Drupal API using "drush eval".
  • Read/write Drupal variables.
  • Read/write encrypted field from Encrypted Settings Field.
  • ...

The module is different from Drush (or Drupal Batch API, or Queue API) in that:

  1. Drush is synchronized (command gets executed immediately).
  2. Drush has to resides locally where Drupal is installed, whereas Async Command programs could run on a remote computer.
  3. Drush requires PHP, but Async Command programs could be written in any languages (Python, R, Matlab, Java, Ruby etc).
  4. Async Command is designed specifically for time/resource consuming computation tasks.

The module is different from Beanstalk or other queue management system in that:

  1. Async Command comes with a Java library to help you write 3rd party programs.
  2. In terms of queue management, this module is light-weight compared to Beanstalk (no need to install Beanstalk, less features, but integrate tighter with Drupal
  3. Async Command is not distributed messaging system: it only sends commands to one worker. However, that one worker can further distribute commands to multiple workers (thus implementing a distributed messaging system).

Modules that uses this Async Command module

Note to developers:: This module is still in alpha, and is subject to change anytime. If you use this module for development purpose, please let me know so we can coordinate possible API interface changes.

Developed by Daniel Zhou at Michiza Computing.

Downloads

Recommended releases

Version Downloads Date Links
7.x-2.0-alpha10 tar.gz (2.24 MB) | zip (2.36 MB) 2012-Mar-09 Notes
6.x-1.0-alpha4 tar.gz (1.86 MB) | zip (1.87 MB) 2012-Mar-23 Notes

Other releases

Version Downloads Date Links
7.x-1.0-alpha11 tar.gz (1.85 MB) | zip (1.86 MB) 2011-Oct-24 Notes

Project Information


Maintainers for Async Command

  • danithaca - 102 commits
    last: 9 weeks ago, first: 1 year ago

Issues for Async Command

To avoid duplicates, please search before submitting a new issue.
All issues
Bug reports
nobody click here