A new class (internal for the time being) JobsWorker encapsulates the complex RepeatedTask logic. JobsCommand gets a simplified responsibility of creating and running nJobsWorkers. The JobsCommand is also responsible for shutting them down when requested from the command line.
The files have been re-arranged slightly for better organization.
Fixes #27
QueueService and QueueName were renamed to JobsService and JobsQueue respectively.
Fixes #29
I went a bit of a different route than described in the issue, but I think it's better. With this PR, you can configure Jobs with just a few lines of code:
s.provider(JobsProvider())
s.provider(RedisProvider())
s.register(JobsDriver.self) { c in
return try JobsRedisDriver(client: c.make())
}
s.extend(JobsConfiguration.self) { config, c in
config.add(FooJob())
}
Instead of relying on extensions to JobsConfiguration, this PR assumes that RedisProvider will expose RedisClient as a ready-to-use service.
This makes RedisClient the only dependency that JobsRedisDriver has on RedisKit.
Fixes #26
JobsConfiguration has had a few extra properties added to simplify configuration
A new class (internal for the time being)
JobsWorker
encapsulates the complexRepeatedTask
logic.JobsCommand
gets a simplified responsibility of creating and runningn
JobsWorker
s. TheJobsCommand
is also responsible for shutting them down when requested from the command line.The files have been re-arranged slightly for better organization.
Fixes #27
QueueService
andQueueName
were renamed toJobsService
andJobsQueue
respectively.Fixes #29
I went a bit of a different route than described in the issue, but I think it's better. With this PR, you can configure Jobs with just a few lines of code:
Instead of relying on extensions to
JobsConfiguration
, this PR assumes thatRedisProvider
will exposeRedisClient
as a ready-to-use service.This makes
RedisClient
the only dependency thatJobsRedisDriver
has onRedisKit
.Fixes #26
JobsConfiguration
has had a few extra properties added to simplify configuration