Actually call the scheduler on relevant changes
Require celery with redis
Another attempt at including celery+redis
Make travis start a redis server
Remove pymsql on Python 3.3 from allowed failures

SQLAlchemy is at 0.9.4 now, so these should work again
Retry failed tasks

This does not yet make sure tasks are not retried on the same agent they
just failed on.
Bugfix when checking for dependencies.

State can be NULL, and in some SQL implementations not checking for that
explicitly can lead to unexpected results
Merge pull request #130 from guidow/dependency_bugfix

Bugfix when checking for dependencies.
Merge pull request #128 from guidow/retry_failed_tasks

Retry failed tasks
Merge pull request #125 from guidow/reduce_allowed_failures

Remove pymsql on Python 3.3 from allowed failures (follow up to #86)
manually merging guidow:call_scheduler_on_changes into master (closes #124)
removing unused entrypoint
add api_url() to the agent model to limit duplicated logic elsewhere
Merge pull request #134 from pyfarm/agent_model_url

add api_url() to the agent model
Celery task for sending tasks to an agent
Refactor assign_tasks to use get_batch_agent_pair

assign_batch_at_prio() has now been renamed to get_batch_agent_pair(),
and instead of directly assigning tasks to an agent at a priority level,
it will return a tuple of a list of tasks and agent they can be assigned
to, leaving the actual assigning to the caller.

This is necessary because assign_tasks will need to queue a
send_tasks_to_agent() task for every agent that has been assigned new
tasks, but it must do that after committing its database transaction. In
the previous architecture, assign_tasks() never actually which agents
exactly where touched.
Bugfix: waiting WorkStates can be NULL
Bugfix: IP addresses to string for HTTPConnection
Use default_json_encoder when encoding message

Otherwise, some custom types like Decimal or datetime cannot be encoded
Bugfix: Logger has no "notice" method