Skip to content

Commit cded761

Browse files
committed
任务名不再支持多应用的写法,使用完整类名代替
1 parent 8dc0770 commit cded761

File tree

2 files changed

+6
-14
lines changed

2 files changed

+6
-14
lines changed

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818

1919

2020
## 创建任务类
21-
> 单模块项目推荐使用 `app\job` 作为任务类的命名空间
22-
> 多模块项目可用使用 `app\module\job` 作为任务类的命名空间
21+
> 推荐使用 `app\job` 作为任务类的命名空间
2322
> 也可以放在任意可以自动加载到的地方
2423
2524
任务类不需继承任何类,如果这个类只有一个任务,那么就只需要提供一个`fire`方法就可以了,如果有多个小任务,就写多个方法,下面发布任务的时候会有区别
@@ -94,8 +93,7 @@ class Job2{
9493
> `think\facade\Queue::push($job, $data = '', $queue = null)``think\facade\Queue::later($delay, $job, $data = '', $queue = null)` 两个方法,前者是立即执行,后者是在`$delay`秒后执行
9594
9695
`$job` 是任务名
97-
单模块的,且命名空间是`app\job`的,比如上面的例子一,写`Job1`类名即可
98-
多模块的,且命名空间是`app\module\job`的,写`model/Job1`即可
96+
命名空间是`app\job`的,比如上面的例子一,写`Job1`类名即可
9997
其他的需要些完整的类名,比如上面的例子二,需要写完整的类名`app\lib\job\Job2`
10098
如果一个任务类里有多个小任务的话,如上面的例子二,需要用@+方法名`app\lib\job\Job2@task1``app\lib\job\Job2@task2`
10199

src/queue/Job.php

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Exception;
1515
use think\App;
1616
use think\helper\Arr;
17+
use think\helper\Str;
1718

1819
abstract class Job
1920
{
@@ -193,18 +194,11 @@ protected function getParsedJob()
193194
*/
194195
protected function resolve($name, $param)
195196
{
196-
if (strpos($name, '\\') === false) {
197+
$namespace = $this->app->getNamespace() . '\\job\\';
197198

198-
if (strpos($name, '/') === false) {
199-
$app = '';
200-
} else {
201-
[$app, $name] = explode('/', $name, 2);
202-
}
199+
$class = false !== strpos($name, '\\') ? $name : $namespace . Str::studly($name);
203200

204-
$name = ($this->app->config->get('app.app_namespace') ?: 'app\\') . ($app ? strtolower($app) . '\\' : '') . 'job\\' . $name;
205-
}
206-
207-
return $this->app->make($name, [$param], true);
201+
return $this->app->make($class, [$param], true);
208202
}
209203

210204
public function getResolvedJob()

0 commit comments

Comments
 (0)