<mark>此插件，主要社区贡献人（fzdwx）</mark>

```xml
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>powerjob-solon-cloud-plugin</artifactId>
</dependency>
```

#### 1、描述

分布式扩展插件。基于 powerjob（[代码仓库](https://gitee.com/KFCFans/PowerJob)）适配的 solon cloud job 插件。v2.0.0 后支持


#### 2、云端能力接口

| 接口 | 说明 | 备注 |
| -------- | -------- | -------- |
| CloudJobService             | 云端定时任务服务	            |  只支持云端调度    |



#### 3、配置示例

```yml
solon.app:
  name: demoapp
  group: demo

solon.cloud.powerjob:
  server: 127.0.0.1:7700
  password: 123456
  job:
    port: 28888
    protocol: akka

solon.logging.logger:
  "io.netty.*":
    level: INFO
```

#### 4、代码应用

* Solon cloud Job 标准应用：（可自由切换不同插件）

```java
//将转为 BasicProcessor 进行调度 
@CloudJob(name = "job1", cron7x = "0 1 * * * ?")
public class Job1 implements CloudJobHandler {
    @Override
    public void handle(Context ctx) throws Throwable {
        //如果有需求，可获取调度上下文
        //TaskContext jobContext = (TaskContext)ctx.request(); 
    }
}
```

* Solon cloud Job 标准注解 + 个性化应用：（不可自由切换插件）

```java
//做为 method 运行（将转为 BasicProcessor 进行调度）
@Component
public class Job2Com {
    @CloudJob("job2")
    public ProcessResult job2(TaskContext jobContext){
        return new ProcessResult(true, "Hello job!");
    }
}

//做为 class 运行（支持所有 Processor 类型）
//没有取job name 时，将使用全类名进行调度（建议用 job name，免得类有移动）
@CloudJob
public class Job3 implements BroadcastProcessor {
    @Override
    public ProcessResult process(TaskContext jobContext) throws Exception {
        return new ProcessResult(true, "Hello job!");
    }
}
```

#### 5、演示项目

[https://gitee.com/noear/solon-examples/tree/main/9.Solon-Cloud/demo9064-job_powerjob](https://gitee.com/noear/solon-examples/tree/main/9.Solon-Cloud/demo9064-job_powerjob)


