精华内容
下载资源
问答
  • <div><p>通过TimelineElement的方式执行任务,两点之间距离过近导致终止,如何规避 <pre><code> private val elements = mutableListOf<timelineelement>() fun startMission(){ missionControl....
  • 0则是错误,但不需要终止任务,可以自定义一些处理。关键点定义func函数处理需求callback处理返回结果,只有偶数和0返回;奇数会一直执行;要控制线程池状态,则需要针对偶数和0时抛出异常,并捕获异常处理。...

    需求

    加入我们需要处理一串个位数(0~9),奇数时需要循环打印它;偶数则等待对应时长并完成所有任务;0则是错误,但不需要终止任务,可以自定义一些处理。

    关键点

    定义func函数处理需求

    callback处理返回结果,只有偶数和0返回;奇数会一直执行;要控制线程池状态,则需要针对偶数和0时抛出异常,并捕获异常处理。

    threadpool定义线程池并发

    实现# -*- coding: utf-8 -*-

    from threadpool import makeRequests, ThreadPool

    import time

    from multiprocessing import Process

    异常定义和特殊值(0)定义class Finish(SyntaxWarning):

    passclass PauseInfo(SyntaxWarning):

    pass

    pause_num = 0

    func函数定义

    0时返回False,其他偶数返回Truedef func(para):

    if para == pause_num:

    print(‘start for %d and wait %ds‘ % (para, 4))

    time.sleep(4)

    print(‘error bcs ‘,para)

    return False

    if para % 2 == 0:

    print(‘start for %d and wait %ds‘ % (para, para))

    time.sleep(para)

    print(‘stop for‘, para)

    return True

    while True:

    print(‘continue for‘, para)

    time.sleep(para)

    callback定义def callback(request, result):

    if result:

    raise Finish

    else:

    raise PauseInfo

    线程池处理

    Finish标识任务完成,再次诱发异常退出线程池处理;def main_thread(paras):

    pool = ThreadPool(10)

    requests = makeRequests(callable_=func, args_list=paras, callback=callback)

    [pool.putRequest(req) for req in requests]

    while True:

    try:

    pool.wait()

    except Finish as e:

    raise SystemExit

    except PauseInfo as e:

    print(‘Pause bcs %d but will continue‘ % pause_num)

    except Exception as e:

    print(‘Unknown error so will quit‘)

    raise SystemExit

    主函数起一个测试进程if __name__ == ‘__main__‘:

    while True:

    s = input(‘Input number list to test and any other word to quit\n‘)

    paras = []

    for para in s:

    if para.isnumeric():

    paras.append(int(para))

    else:

    break

    try:

    thread_test = Process(target=main_thread, args=(paras,))

    thread_test.start()

    thread_test.join(timeout=20)

    except TimeoutError as e:

    print(‘task timeout‘)

    except Exception as e:

    print(‘unknow error:‘,e)

    结果验证

    处理108,看打印可以看到,1被循环处理,0处理的时候报错;8处理完毕则任务结束

    Input number list to test and any other word to quit

    108

    continue for 1

    start for 0 and wait 4s

    start for 8 and wait 8s

    continue for 1

    continue for 1

    continue for 1

    error bcs  0

    continue for 1

    Pause bcs 0 but will continue

    continue for 1

    continue for 1

    continue for 1

    continue for 1

    stop for 8

    Input number list to test and any other word to quit

    原文:http://www.cnblogs.com/inns/p/6161033.html

    展开全文
  • 0则是错误,但不需要终止任务,可以自定义一些处理。 关键点 定义func函数处理需求 callback处理返回结果,只有偶数和0返回;奇数会一直执行;要控制线程池状态,则需要针对偶数和0时抛出异常,并捕获异常处理...

    需求

    加入我们需要处理一串个位数(0~9),奇数时需要循环打印它;偶数则等待对应时长并完成所有任务;0则是错误,但不需要终止任务,可以自定义一些处理。

     

    关键点

    定义func函数处理需求

    callback处理返回结果,只有偶数和0返回;奇数会一直执行;要控制线程池状态,则需要针对偶数和0时抛出异常,并捕获异常处理。

    threadpool定义线程池并发

     

    实现

    # -*- coding: utf-8 -*-
    from threadpool import makeRequests, ThreadPool
    import time
    from multiprocessing import Process

    异常定义和特殊值(0)定义

    class Finish(SyntaxWarning):
    pass



    class PauseInfo(SyntaxWarning):
    pass


    pause_num = 0
     

    func函数定义

    0时返回False,其他偶数返回True

    def func(para):
    if para == pause_num:
    print('start for %d and wait %ds' % (para, 4))
    time.sleep(4)
    print('error bcs ',para)
    return False

    if para % 2 == 0:
    print('start for %d and wait %ds' % (para, para))
    time.sleep(para)
    print('stop for', para)
    return True

    while True:
    print('continue for', para)
    time.sleep(para)
     

    callback定义

    def callback(request, result):
    if result:
    raise Finish
    else:
    raise PauseInfo
     

    线程池处理

    Finish标识任务完成,使用sys.exit退出线程池处理;

    def main_thread(paras):
    pool = ThreadPool(10)
    requests = makeRequests(callable_=func, args_list=paras, callback=callback)
    [pool.putRequest(req) for req in requests]
    while True:
    try:
    pool.wait()
    except Finish as e:
    sys.exit(0)
    except PauseInfo as e:
    print('Pause bcs %d but will continue' % pause_num)
    except Exception as e:
    print('Unknown error so will quit')
    sys.exit(1)
     

    主函数起一个测试进程

    if __name__ == '__main__':
    while True:
    s = input('Input number list to test and any other word to quit\n')
    paras = []
    for para in s:
    if para.isnumeric():
    paras.append(int(para))
    else:
    break

    try:
    thread_test = Process(target=main_thread, args=(paras,))
    thread_test.start()
    thread_test.join(timeout=20)
    except TimeoutError as e:
    print('task timeout')
    except Exception as e:
    print('unknow error:',e)
     

    结果验证

     

    处理108,看打印可以看到,1被循环处理,0处理的时候报错;8处理完毕则任务结束

    Input number list to test and any other word to quit
    108
    continue for 1
    start for 0 and wait 4s
    start for 8 and wait 8s
    continue for 1
    continue for 1
    continue for 1
    error bcs  0
    continue for 1
    Pause bcs 0 but will continue
    continue for 1
    continue for 1
    continue for 1
    continue for 1
    stop for 8
    Input number list to test and any other word to quit

    转载于:https://www.cnblogs.com/inns/p/6161033.html

    展开全文
  • 0则是错误,但不需要终止任务,可以自定义一些处理。关键点定义func函数处理需求callback处理返回结果,只有偶数和0返回;奇数会一直执行;要控制线程池状态,则需要针对偶数和0时抛出异常,并捕获异常处理。...

    需求

    加入我们需要处理一串个位数(0~9),奇数时需要循环打印它;偶数则等待对应时长并完成所有任务;0则是错误,但不需要终止任务,可以自定义一些处理。

    关键点

    定义func函数处理需求

    callback处理返回结果,只有偶数和0返回;奇数会一直执行;要控制线程池状态,则需要针对偶数和0时抛出异常,并捕获异常处理。

    threadpool定义线程池并发

    实现# -*- coding: utf-8 -*-

    from threadpool import makeRequests, ThreadPool

    import time

    from multiprocessing import Process

    异常定义和特殊值(0)定义class Finish(SyntaxWarning):

    passclass PauseInfo(SyntaxWarning):

    pass

    pause_num = 0

    func函数定义

    0时返回False,其他偶数返回Truedef func(para):

    if para == pause_num:

    print('start for %d and wait %ds' % (para, 4))

    time.sleep(4)

    print('error bcs ',para)

    return False

    if para % 2 == 0:

    print('start for %d and wait %ds' % (para, para))

    time.sleep(para)

    print('stop for', para)

    return True

    while True:

    print('continue for', para)

    time.sleep(para)

    callback定义def callback(request, result):

    if result:

    raise Finish

    else:

    raise PauseInfo

    线程池处理

    Finish标识任务完成,再次诱发异常退出线程池处理;def main_thread(paras):

    pool = ThreadPool(10)

    requests = makeRequests(callable_=func, args_list=paras, callback=callback)

    [pool.putRequest(req) for req in requests]

    while True:

    try:

    pool.wait()

    except Finish as e:

    raise SystemExit

    except PauseInfo as e:

    print('Pause bcs %d but will continue' % pause_num)

    except Exception as e:

    print('Unknown error so will quit')

    raise SystemExit

    主函数起一个测试进程if name == 'main':

    while True:

    s = input('Input number list to test and any other word to quit\n')

    paras = []

    for para in s:

    if para.isnumeric():

    paras.append(int(para))

    else:

    break

    try:

    thread_test = Process(target=main_thread, args=(paras,))

    thread_test.start()

    thread_test.join(timeout=20)

    except TimeoutError as e:

    print('task timeout')

    except Exception as e:

    print('unknow error:',e)

    结果验证

    处理108,看打印可以看到,1被循环处理,0处理的时候报错;8处理完毕则任务结束

    Input number list to test and any other word to quit

    108

    continue for 1

    start for 0 and wait 4s

    start for 8 and wait 8s

    continue for 1

    continue for 1

    continue for 1

    error bcs 0

    continue for 1

    Pause bcs 0 but will continue

    continue for 1

    continue for 1

    continue for 1

    continue for 1

    stop for 8

    Input number list to test and any other word to quit

    展开全文
  • 但是没成功,于是看日志发现是由于Timer报错了,任务终止了。 然后需要改成在Timer报错的时候还要继续执行任务,于是 catch 里面加代码,但是不是很好。 在网上找到一个 java.util.concurrent....

    在做的热网系统里有几个Timer在定时执行

    但是跑了几个小时后没成功,于是看日志发现是由于Timer报错了,任务就终止了。

    然后需要改成在Timer报错的时候还要继续执行任务,于是 catch 里面加代码,但是不是很好。

    在网上找到一个

    java.util.concurrent.ScheduledExecutorService;

    于是看介绍修改原Timer的代码为:

    public static ScheduledExecutorService executorService = Executors
    		.newScheduledThreadPool(1);
    
    /**
    	 * 1分钟执行一次
    	 */
    	public static void runTimer() {
    		executorService.scheduleAtFixedRate(new Runnable() {
    			@Override
    			public void run() {
    				try {
    					.....				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		}, 0, 60, TimeUnit.SECONDS);
    	}



    注意:必须加上try catch捕获异常后 才能在异常后继续执行下一次任务,不然任务会挂起什么都不做。


    展开全文
  • Timer异常后导致任务终止的解决方法

    千次阅读 2013-01-09 17:46:44
    但是客户反应 某些数据没成功,于是看日志发现是由于Timer报错了,任务终止了。 然后需要改成在Timer报错的时候还要继续执行任务,于是 catch 里面加代码,但是不是很好。 在网上找到一个 java.util....
  • 前面的几个例子中,使用了“退出标志”或Cancelable接口以适当的方式来终止一个任务,但某些情况下任务必须突然结束掉,这样终止任务将会所产生一些问题。   举例:模拟计数,公园委员会想要了解每天有多少从...
  • 引起线程变为阻塞状态的原因有: 1、调用了sleep(),线程进入休眠状态。 2、调用了wait(),挂起了线程的运行。...终止一个阻塞线程和终止一个非阻塞线程的方式有很大的不同。   终止一个阻塞线程
  • 我需要能够将变量编程到任务终止中,比如我需要能够在我的网络上远程使用它。基本上它需要一个用户名(用于提升权限)、我连接到的计算机的IP地址以及需要终止的任务。用户名需要手动输入密码。在这是代码的一部分:...
  • 终止任务和取消任务

    2019-07-12 20:03:38
    #region 终止任务和取消任务 /* * AppDomain (应用程序域,一般用来观察程序中未被捕捉的异常 有一个 UnhandledException 方法专门用来解决这种情况,当发现有未处理异常的时候他会强行把线程杀死(又叫野蛮终止) ...
  • jira 终止任务

    2021-02-26 17:00:43
    任务流转时通过groovy 对节点进行Validator import com.atlassian.jira.event.issue.IssueEvent; import com.atlassian.jira.issue.Issue; import com.opensymphony.workflow.InvalidInputException; import java....
  • 部署完成后就开始配置任务。第一类datax任务很顺利执行成功。第二类shell任务一开始调试不成功,后来成功。。但是之前未成功的任务一直显示正在执行的状态,无法终止。。第三类任务是python任务,...
  • Timer任务定时器如何终止

    万次阅读 2018-06-18 16:41:53
    Timer类的对象有一个方法可以创建定时任务线程schedule(TimerTask task, long delay)但是自己实际操作后,发现程序运行完毕后,并不能终止这个定时任务线程。需要调用timer对象的cancel()方法才可以终止它。所以,在...
  • 禁止通过任务管理器来终止进程运行,你会发现打开任务管理器后,结束进程 的功能没有了
  • 使用线程池本身删除或终止任务,有一个必须的前提: 任务必须存在于队列之中。 为什么这么说? 是因为我们所谓的“删除任务”是指ThreadPoolExecutor的remove方法: public boolean remove(Runnable task) { ...
  • Oracle 终止expdp任务

    千次阅读 2019-06-28 10:23:02
    1、expdp执行导出操作,然后按ctr +...这样任务其实并没有停掉,dmp文件数据还在增加 3、查看视图dba_datapump_jobs select job_name,state from dba_datapump_jobs; 4、正确停止expdp导出任务使用stop_job ctr+c 进...
  • 伴随这一个业务产生一个比较耗时的任务,而这个业务返回并不需要等待该任务。那我们往往会启动一个线程去完成这个异步任务。 我们需要一个定时任务比如:定时清除数据,我们会起一个定时执行线程去做该任务。  ...
  • 使用Quartz调度任务,根据需要人为的终止某个任务,适用于很多常见的场景
  • scheduleExecutor终止指定任务的方式

    千次阅读 2020-03-02 18:10:29
    使用ScheduledExecutorService.schedule提交任务到执行器定时执行后,我们想在某一特定条件下终止执行器中的某个任务。本文列举2种实现方法。
  • 任务计划终止进程 2017年5月,红帽首席执行官吉姆·怀特赫斯特(Jim Whitehurst)在旧金山举行的年度红帽峰会活动上的主题演讲中得出了一个鲜明的结论:“进行规划已成定局。” 他在2018年10月的红帽计划会议上再次...
  • XxlJob终止任务失败 只需在合适的地方加 TimeUnit.SECONDS.sleep(1) 然后捕获异常即可 图片: 带尺寸的图片: 居中的图片: 居中并且带尺寸的图片: 当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。 ...
  • hive执行任务时异常终止原因分析

    千次阅读 2018-01-11 11:14:09
    异常日志如图所示,在执行任务快结束时,任务异常终止了,通过查看xxxx:8088/cluster页面可以发现任务终止 根据日志分析发现,异常原因为:could not find any valid local directory for output,猜测应该...
  • ctrl+c是终止正在下载的任务 wget -c + URL是继续刚才终止的那个任务

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,838
精华内容 2,335
关键字:

任务终止