Reads from a Laravel queue
Project description
Laravel Queue for Python
Currently:
- only supports reading
- only supports queues in postgres
Create a Queue Object
from laravel_queue import Queue
connection_string = "postgresql://user:password@host:5432/db"
queue = Queue(connection_string)
Queue Args:
connection: str or sqlalchemy.engine.base.Engine
queue: str, default 'python', the queue name in the database
jobs_table: str, default 'jobs.jobs', the table name for the jobs
failed_jobs_table: str, default 'jobs.failed_jobs', the table name for the failed jobs
Read Jobs from Queue
jobs = queue.jobs ## List of jobs in queue object
Running Jobs
while queue.jobs:
jobs = queue.jobs
for job in jobs:
job.run(function) ## run any function
function can be any function to run for this job Using the while loop allows any new jobs placed on the queue while processing to be carried out next.
Passing Params
To pass params in laravel to the python function, specify a param_map
in the run function.
# laravel:
$this->groupId = 12;
# python
def function(group_id):
pass
job.run(function, param_map={
'groupId': 'group_id'
})
Additionally, you can specify a cache_lock_uid
This can be either a str or a list of strings.
This is to be used for managing the job cache if you are using the ShouldBeUnique
or ShouldBeUniqueUntilProcessing
properties in Laravel
The cache_lock_uid
should resemble what you have set uniqueId()
to in laravel.
If a list is sent, you can specify parameters to be filled with $
:
# Laravel:
$this->param1 = 1
$this->param2 = 2
public function uniqueId(): string
{
return $this->param1 . '-' . $this->param2;
}
# Python
job.run(function_name,
param_map = {
'param1': 'param1',
'param2': param2'
}
cache_lock_uid = ['$param1', '-', '$param2'])
## $param1 and $param2 will be swapped in with the cooresponding value.
To use cache locks, you must specify the database as your cache for queue. You can do this as so:
public function uniqueVia(): Repository
{
return Cache::driver('database');
}
If using the ShouldBeUniqueUntilProcessing
property, you must specify that in you job runner as well.
By default (unique_until_processing=False
), the cache lock will be relased after processing, emulating the ShouldBeUnique
laravel property.
Setting this unique_until_processing=True
will relase this lock at the start of the job, like ShouldBeUniqueUntilProcessing
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file laravel_queue-0.0.16.tar.gz
.
File metadata
- Download URL: laravel_queue-0.0.16.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a9b5b957df06ca4018e197dba57d3d72bbe2c5c9d8864ebd5365ea07e0bf094 |
|
MD5 | 2e8552d2ea570e6f06a3e0c15ea0af48 |
|
BLAKE2b-256 | e859c722a5dc2547fde3cdb11b0be11e64d90ff6654fb660013096baac293620 |
File details
Details for the file laravel_queue-0.0.16-py3-none-any.whl
.
File metadata
- Download URL: laravel_queue-0.0.16-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31982fef3b139371267500d3cd14c067e33aef1e40d9ba421caf2fa801e24431 |
|
MD5 | 0db2849fdbebb2cb2f5e8cead2d6e41a |
|
BLAKE2b-256 | 23de8beab5c7ef620c061ecf5c6e0069de46793955d26e617aab5b9047164ba4 |