     public func publish(topic: String, data: Any? = nil, serial: Bool = false, completion handler: YJSPublishHandler? = nil) {
         self.initLoadScheduler()
         YJLogVerbose("[YJScheduler] 发布\(topic), data:\(data ?? "nil")")
-        self.execute(queue: self.workQueue) { (self: YJScheduler) in
+       self.workQueue.async { [unowned self] in
             for item in self.intArray {
                 if item.interceptor != nil && item.canHandler(topic) {
                     item.completionHandler(topic, data, handler)

    public func subscribe(topic: String, subscriber: AnyObject? = nil, queue: YJScheduler.Queue = .default,  handler: @escaping YJSSubscribeHandler) {
        YJLogVerbose("[YJScheduler] \(String(describing: subscriber)) 订阅 \(topic)")
        let target = YJSchedulerSubscribe(topic: topic, subscriber: subscriber ?? self, queue: queue, completionHandler: handler)
        self.execute(queue: self.workQueue) { (self: YJScheduler) in
            let subArray = self.subDict[topic] ?? []
            var newArray = [target]
            for item in subArray {

     */
    public func intercept(interceptor: AnyObject?, canHandler: @escaping YJSInterceptCanHandler, completion handler: @escaping YJSInterceptHandler) {
        let item = YJSchedulerIntercept(interceptor: interceptor ?? self, canHandler: canHandler, completionHandler: handler)
        self.workQueue.async { [unowned self] in
            self.intArray.append(item)
        }
    }
