|
@@ -11,6 +11,7 @@ import com.ym.mec.im.message.TicketExpiredMessage;
|
|
|
import com.ym.pojo.ScheduledTaskInfo;
|
|
|
import com.ym.service.RoomService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.redisson.api.RBucket;
|
|
|
import org.redisson.api.RedissonClient;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.scheduling.annotation.SchedulingConfigurer;
|
|
@@ -93,6 +94,15 @@ public class ScheduleManager implements SchedulingConfigurer {
|
|
|
public void addTask(ScheduledTaskInfo task) {
|
|
|
log.info("add speech task: {}", task);
|
|
|
redissonClient.getBucket(task.getTicket()).set(task);
|
|
|
+ TicketExpiredMessage msg = new TicketExpiredMessage();
|
|
|
+ msg.setFromUserId(task.getApplyUserId());
|
|
|
+ msg.setToUserId(task.getTargetUserId());
|
|
|
+ msg.setTicket(task.getTicket());
|
|
|
+ try {
|
|
|
+ imHelper.publishMessage(task.getTargetUserId(), task.getRoomId(), msg);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("msg send error: {}", e.getMessage());
|
|
|
+ }
|
|
|
/*ScheduledTask scheduledTask = taskRegistrar.scheduleFixedDelayTask(new ScheduledDelayTask(() -> {
|
|
|
log.info("speech task expired, execute task: {}", task);
|
|
|
TicketExpiredMessage msg = new TicketExpiredMessage();
|
|
@@ -110,11 +120,23 @@ public class ScheduleManager implements SchedulingConfigurer {
|
|
|
}
|
|
|
|
|
|
public ScheduledTaskInfo executeTask(String key) {
|
|
|
- if (!redissonClient.getBucket(key).isExists()) {
|
|
|
+ RBucket<Object> bucket = redissonClient.getBucket(key);
|
|
|
+ if (!bucket.isExists()) {
|
|
|
log.error("task not exist: key={}", key);
|
|
|
throw new ApiException(ErrorEnum.ERR_APPLY_TICKET_INVALID);
|
|
|
}
|
|
|
- return (ScheduledTaskInfo)redissonClient.getBucket(key).get();
|
|
|
+ ScheduledTaskInfo task = (ScheduledTaskInfo) bucket.get();
|
|
|
+ TicketExpiredMessage msg = new TicketExpiredMessage();
|
|
|
+ msg.setFromUserId(task.getApplyUserId());
|
|
|
+ msg.setToUserId(task.getTargetUserId());
|
|
|
+ msg.setTicket(task.getTicket());
|
|
|
+ try {
|
|
|
+ imHelper.publishMessage(task.getTargetUserId(), task.getRoomId(), msg);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("msg send error: {}", e.getMessage());
|
|
|
+ }
|
|
|
+ bucket.delete();
|
|
|
+ return task;
|
|
|
// ScheduledTask scheduledTask = schedulingTasks.remove(key);
|
|
|
// if (scheduledTask == null) {
|
|
|
// log.error("task not exist: key={}", key);
|