class TimerTaskExecutor extends AbstractTaskExecutor {

        TimerSpec spec;

        public TimerTaskExecutor(ExecutionContext context) {
            super(context);
            spec = FastBeanCopier.copy(context.getJob().getConfiguration(), new TimerSpec());
        }

        @Override
        public String getName() {
            return "定时调度";
        }

        @Override
        protected Disposable doStart() {
            return execute();
        }

        private Disposable execute() {<FILL_FUNCTION_BODY>}

        @Override
        public void reload() {
            spec = FastBeanCopier.copy(context.getJob().getConfiguration(), new TimerSpec());
            if (disposable != null) {
                disposable.dispose();
            }
            disposable = doStart();
        }

        @Override
        public void validate() {
            TimerSpec spec = FastBeanCopier.copy(context.getJob().getConfiguration(), new TimerSpec());
            spec.nextDurationBuilder();
            spec.createTimeFilter();
        }

        @Override
        public synchronized void shutdown() {
            super.shutdown();
        }


    }

            return spec
                .flux()
                .onBackpressureDrop()
                .concatMap(t -> {
                    Map<String, Object> data = new HashMap<>();
                    long currentTime = System.currentTimeMillis();
                    data.put("timestamp", currentTime);
                    data.put("_now", currentTime);
                    data.put("times", t);
                    RuleData ruleData = context.newRuleData(data);
                    return context
                        .getOutput()
                        .write(ruleData)
                        .then(context.fireEvent(RuleConstants.Event.result, ruleData))
                        .onErrorResume(err -> context.onError(err, null).then(Mono.empty()))
                        .as(tracer());
                })
                .subscribe();
        
<no_super_class>