问:假设用 python 写了个端口扫描功能,基于 web 界面,端口扫描需要耗费一定时间,
怎么做才能实现用户输入指定 IP 提交任务,然后可以随意切换页面,后台进行扫描功能,
过一段时间后再切到结果页面直接查看扫描结果,扫描功能是直接写在 web 代码还是要另起一个独立脚本?
1
Yourdaye 2017-02-21 16:50:31 +08:00
正文太长,下一题
|
2
qsnow6 2017-02-21 16:56:12 +08:00
webui 和扫描脚本都单独用一个进程
|
3
holajamc 2017-02-21 16:56:41 +08:00
|
4
gamexg 2017-02-21 17:23:18 +08:00
另起一个独立脚本。
>过一段时间后再切到结果页面直接查看扫描结果 新任务生成一个 id , session 记录这个 id ,然后访问结果页面时根据 id 查询,放 sql 还是 kv 就随意了。 |
5
yangtukun1412 2017-02-21 17:33:03 +08:00
|
6
JasperYanky 2017-02-21 17:37:47 +08:00
Celery
|
7
zhchbin 2017-02-21 17:48:45 +08:00
|
8
xrlin 2017-02-21 18:00:32 +08:00
这种情况一般用任务队列。
|
9
SP00F 2017-02-21 18:01:31 +08:00
#6 漏正解, Celery 异步处理。
|
10
tumbzzc 2017-02-21 18:12:03 +08:00
简单一点,后台另起脚本运行任务,最后的结果输出到一个结果页面,那样就随便切换了
|
11
Kilerd 2017-02-21 18:19:35 +08:00
任务队列
|
12
ansheng 2017-02-21 18:43:36 +08:00
Celery 异步调用。
|
13
SlipStupig 2017-02-22 16:21:46 +08:00
一点不影响啊,一个任务对应一个线程,把一个任务对应一个任务 ID ,线程把进度保持到数据库里面就行( mysql sqlite mongodb redis 等等都可以),前端读数据库就可以了,一点也不复杂
|