vapor / queues

A queue system for Vapor.
MIT License
169 stars 41 forks source link

add new JobsWorker class #30

Closed tanner0101 closed 5 years ago

tanner0101 commented 5 years ago

A new class (internal for the time being) JobsWorker encapsulates the complex RepeatedTask logic. JobsCommand gets a simplified responsibility of creating and running n JobsWorkers. 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

penny-coin commented 5 years ago

Hey @tanner0101, you just merged a pull request, have a coin!

You now have 1298 coins.