Updated README.md documentation
This commit is contained in:
parent
9edc68ca1a
commit
4d69196bfe
1 changed files with 37 additions and 16 deletions
53
README.md
53
README.md
|
@ -606,7 +606,7 @@ To learn how to create a worker, see the [Implementing a worker](#implementing-a
|
|||
|
||||
### do
|
||||
|
||||
> `\TamerLib\tm::do(string $function, array $arguments, int $channel=0): int`
|
||||
> `\TamerLib\tm::do(string $function, array $arguments=[], ?callable $callback=null, array $options=[]): int`
|
||||
|
||||
Executes a function on a worker and returns the Job ID, this ID is used to identify the job at a later state once it's
|
||||
completed. this method can also be called statically using the function name as a method name.
|
||||
|
@ -614,6 +614,12 @@ completed. this method can also be called statically using the function name as
|
|||
- `$function` - The function to execute on the worker
|
||||
- `$arguments` - The arguments to pass on to the function (can contain classes but they must be serializable, eg. no
|
||||
resources or closures)
|
||||
- `$callback` *(Optional)* The callback to execute once the job is completed, this callback will be passed on the
|
||||
result of the job as the first argument
|
||||
|
||||
|
||||
Options:
|
||||
|
||||
- `$channel` - *(Optional)* The channel to execute the function on, this is only applicable to some workers that may
|
||||
listen to multiple channels, if this is not specified, the function will be executed on channel 0. This is useful for
|
||||
separating different types of jobs on different channels for different workers.
|
||||
|
@ -628,17 +634,30 @@ or
|
|||
$job_id = \TamerLib\tm::sleep(5);
|
||||
```
|
||||
|
||||
To produce callbacks in jobs, you could approach a call as so
|
||||
|
||||
```php
|
||||
\TamerLib\tm::do('sleep', [5], static function($result) {
|
||||
echo "Job completed with result: {$result}";
|
||||
});
|
||||
|
||||
\TamerLib\tm::wait();
|
||||
```
|
||||
|
||||
This will execute the callback when the job is completed, this will only work if you call the `wait()` method after
|
||||
dispatching the job, otherwise the callback will never be executed.
|
||||
|
||||
|
||||
***
|
||||
|
||||
|
||||
### dof
|
||||
|
||||
> `\TamerLib\tm::dof(string $function, array $arguments, int $channel=0): void`
|
||||
> `dof(string $function, array $arguments=[], array $options=[]): void`
|
||||
|
||||
The same as [`do`](#do) but in a "Do and forget" method. This method will send the job packet to the server
|
||||
without a return channel, this essentially means that once that worker has finished executing the job and if
|
||||
fails or succeeds, the job will be dropped regardless and the client will not be notified of the result.
|
||||
fails or succeeds, the job will be dropped regardless, and the client will not be notified of the result.
|
||||
|
||||
This method is useful for executing jobs that do not need to return a result, such as logging or sending emails.
|
||||
|
||||
|
@ -652,19 +671,17 @@ This method is useful for executing jobs that do not need to return a result, su
|
|||
|
||||
### wait
|
||||
|
||||
> `\TamerLib\tm::wait(callable $callback, int $timeout=0): void`
|
||||
> `\TamerLib\tm::wait(int $timeout=0): void`
|
||||
|
||||
This method is responsible for waiting for all dispatched jobs to finish executing, this method will block until all
|
||||
jobs have finished executing or until the timeout has been reached. This is usually called after dispatching one or
|
||||
more jobs and your application needs to wait for the results.
|
||||
more jobs, and your application needs to wait for the results.
|
||||
|
||||
**Note:** This method throw an exception if a Job returns an exception
|
||||
**Note:** This method throws an exception if a Job returns an exception
|
||||
|
||||
- `$callback` - The callback to call when a job has finished executing, this callback will receive the job ID and the
|
||||
result of the job as arguments.
|
||||
- `$timeout` - *(Optional)* The timeout in seconds to wait for, if this is set to 0, the method will block indefinitely,
|
||||
or if the value is set to -1 the method will not block at all and will return immediately after it's first iteration.
|
||||
Otherwise the method will block for the specified amount of seconds.
|
||||
or if the value is set to -1 the method will not block at all and will return immediately after it's a first iteration.
|
||||
Otherwise, the method will block for the specified number of seconds.
|
||||
|
||||
```php
|
||||
\TamerLib\tm::do('sleep', [5]);
|
||||
|
@ -677,13 +694,17 @@ more jobs and your application needs to wait for the results.
|
|||
or
|
||||
|
||||
```php
|
||||
print(\TamerLib\tm::do('sleep', [5]) . PHP_EOL);
|
||||
print(\TamerLib\tm::do('sleep', [10]) . PHP_EOL);
|
||||
print(\TamerLib\tm::do('sleep', [15]) . PHP_EOL);
|
||||
|
||||
\TamerLib\tm::wait(function($job_id, $result) {
|
||||
echo "Job $job_id finished with result $result" . PHP_EOL;
|
||||
\TamerLib\tm::do('sleep', [5], static function($result) {
|
||||
echo "Job completed with result: {$result}";
|
||||
});
|
||||
\TamerLib\tm::do('sleep', [10], static function($result) {
|
||||
echo "Job completed with result: {$result}";
|
||||
});
|
||||
\TamerLib\tm::do('sleep', [15], static function($result) {
|
||||
echo "Job completed with result: {$result}";
|
||||
});
|
||||
|
||||
\TamerLib\tm::wait();
|
||||
```
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue