- Store-Redis#constructor: handles no password URLs
- Task#save: returns error rather than id for conflicting task
- Worker#work: makes when.js 3.3.0 compatible
- Mocha: better error debugging
- Build: upgrades when.js to 3.3.0
- Company#addFactory: uses "def" namespace when name is undefined
- Factory: fixes rids of race conditions in quickEntry
- Tasks: adds ability to pass existing id (via options.id) to create
- Factory: adds ability to use existing client to getNextId
- Task: adds ability to use existing client to save
- Monitor: moves {find, findId, findExists} to Tasks
- Dependencies: removes "async"
- Dispatcher: fix promise-related bug in halt
- Readme: reflects fact that time-to-live must be greater than 2 seconds
- Examples: better shutdown example
- Cleans up examples directory
- Add examples/shutdown
- Add Dispatcher.tidy with call on start and "terminating" event
- Fix bug where subscriber wasn't listening at start
- Add Scripts module and load scripts into factory
- Add additional Redis commands: hasScript, loadScript, evalSHA
- Rename timeToDie timeToLive
- Add Lua script for tidying post-crash
- All shutdown commands now return promises
- Factory.shutdown: fix bad call to team.off()
- Team.shutdown: fix undeclared done function, add priority to purgatory
- Add Dispatcher functions: halt, shutdown, requeueTask and states: halted, terminated
- Change sortedPop to return all information (breaks Dispatcher)
- Add graceful shutdown and license to Readme
- Add Team.shutdown function
- Add timeToDie to Company.shutdown, Factory.shutdown and Team.shutdown
- Separate sortedAdd from priorityAdd to stay true to Redis
- Add better description to Task process
- Add Broker.shutdown and Broker.destroyChannel
- Add Company.shutdown and Factory.shutdown
- Replaces "transport" language with "store" for appropriateness
- Replaces "job" references with "task" for consistency
- Adds Team tests
- Adds Procedures tests
- Factory: throws error when adding team w/insufficient connections
- Increases defaults connections to { min : 3, max : 10 }
- Attaches error to task upon failure
- Adds "parsePoolSettings" to Broker to allow additional pool parameters
- Tasks.getStatus no longer relies on Task.get
- Fixes erroneous call to self in Team.heartbeat
- Factory.getNextId now relies on Factory.execute
- Switches Broker.acquire to not use promises: promise now handled in Factory.execute
- Switches Factory.getClient calls to Factory.execute
- Hot fix of incorrect client usage in Monitor
- Updates retry example and adds remove example
- Created Task.remove function
- Adds StoreRedis.remove function and updates comments
- Adds task retry and example
- Wraps Task.finalize function in order to prep for failure retries
- Bug fix in Dispatcher (ignore instead of ignoreTask)
- Adds further overloading of Factory.execute
- Moves task cleanup logic from worker to task
- Moves team autostart to Factory.addTeam (prevents race conditions)
- Changed Dispatcher#broadcast(id, event) to (event, id)
- Binds appropriate Dispatcher functions in-module rather than out-of-module
- Switches sortedAdd/sortedPop order in order to fix LIFO problem
- Adds race condition example (demonstrates breaking)
- Cleans up remaining noop and done calls/declarations
- Adds extensive argument polymorphism: many fxn can accept client + factory
- Eliminates calls to "run" and Factory.run (was causing binding problems)
- Binds store-redis functions to self
- Adds "priority" feature and updates Readme
- Fixed another "subcriber" typo in Dispatcher.constructor
MAJOR RENAMING: GOAL IS INTUITIVE, CONSISTENT FUNCTION NAMES
- Renamed "finish" event to "end"
- Procedure.andTeam now returns the team created
- Renames factory.client to getClient
- Renames "sub" to "subscriber" (and corresponding functions)
- Renames Dispatcher.digest to routeMessage
- Renames Dispatcher.dispatch to broadcast
- Renames Dispatcher{watch, ignore} to watchTask and ignoreTask
- Removes "done" references from Company
- Renames "localBind" to "bindLocal"
- Removes progress binding in Worker.work
- Renames "settings" variables to cxnSettings, and auth" to poolSettings
- Adds local vs global binding abilities
- Renamed complete event to success
- Fixes problem where expiration didn't work across processes
- Bug fixes in dispatcher
- Moves worker "complete" and "failure" to single "finished" event
- Adds task on/broadcast functionality
- Added publish to store-redis
- Added master/slave example
- Changes pubSub language to "sub" (publish clients are separate)
- Adds basic dispatch functions
- Allows for errors in store-redis.createConnection
- Adds pubSub to Broker, cleans up legacy code
- Fixes auth connection string problem with store-redis
- Refactors dispatcher and fixes memory leak in getNextTask
- Cleans up console.log and whitespace
- Switches Manager to Dispatcher (more appropriate name), binds delegate function
- Initial refactoring of team/worker
- Inserts missing variable in sequence call
- Deleted unused functions from task/tasks
- Better documentation for task.js
- Refactoring of tasks
- Utilizes pooled connections
- Adds expiration to teams that don't check in
- Fixes bug in Task defaults/options
- Adds failure messages
- Fixes serialization in hashSet
- Fixes typos in Task.progress
- Adds error handling to Factory.quickEntry
- Removes required procedure for task creation
- Adds auto-serialization to StoreRedis
- Adds string parsing to store-redis
- Procedure has "andTeam" chaining
- lacksTask now rejects with id vs error
- Provides small redis url example and improves store-redis arguments
- Improves broker auth race condition (hard to circumvent)
- Extracts out Store layer functions (to allow different Stores)
- Removes callback from Factory.reserveTaskId
- Updates example for new form of quickEntry
- Ensures that progress maxes out at 100
- More extensive factory testing
- Changes uid hash to not store type
- Changes quickEntry to return task
- Switches find to findExists in Factory.lacksTask
- Fixes reference problem in Monitor.findExists
- Adds Task.info
- Fixed "this" vs "self" reference in Team.heartbeat
- Fixed task with uid in Tasks.uidFunctions
- Fixed error handling in Procedure constructor
- Bug fixes in Monitor (incorrect findId call, missing proxy)
- Reordered tasks in Factory to tie to reality better
- Factory.addProcedure now actually returns procedure
- Removed unused callback from Factory constructor
- Enabled Company.addFactor to add settings without name
- Renamed Factory.shortcut to Factory.quickEntry
- Adds devDependencies for testing
- Set up test directory structure
- Adds complete and failure events to task
- Consolidates complete/failure functions. Adds progress function.
- Adds task activate and deactivate functions
- Added metadata to task and wrapped options into it.
- Moves Team creation to Team from Factory, adds "heartbeat" to team
- Changes Team.process to Team.delegate
- Small formatting fixes
- Promisifies tasks
- Promisifies task
- Promisifies factory module
- Formatting fixes
- Adds task expiration (auto-removal)
- Adds task completion/failure
- Fixes some team serialization problems
- Adds event handling to worker
- Changes "job" to "task" (for consistency)
- Changes "name" in manager to "type" (for consistency)
- Adds initial support for custom events
- Updates casing of title
- Creates README
- Adds TaskCo jpg
- Begin separation of Tasks/Monitoring
- Adds sketch diagram
- Adds strict mode
- irresponsibly large number of changes
- increased formality to structure