Python web 的一个问题,描述较长,具体看正文

2017-02-21 16:48:06 +08:00
 scriptkid

问:假设用 python 写了个端口扫描功能,基于 web 界面,端口扫描需要耗费一定时间,
怎么做才能实现用户输入指定 IP 提交任务,然后可以随意切换页面,后台进行扫描功能,
过一段时间后再切到结果页面直接查看扫描结果,扫描功能是直接写在 web 代码还是要另起一个独立脚本?

2487 次点击
所在节点    Python
13 条回复
Yourdaye
2017-02-21 16:50:31 +08:00
正文太长,下一题
qsnow6
2017-02-21 16:56:12 +08:00
webui 和扫描脚本都单独用一个进程
holajamc
2017-02-21 16:56:41 +08:00
gamexg
2017-02-21 17:23:18 +08:00
另起一个独立脚本。

>过一段时间后再切到结果页面直接查看扫描结果
新任务生成一个 id , session 记录这个 id ,然后访问结果页面时根据 id 查询,放 sql 还是 kv 就随意了。
yangtukun1412
2017-02-21 17:33:03 +08:00
JasperYanky
2017-02-21 17:37:47 +08:00
Celery
zhchbin
2017-02-21 17:48:45 +08:00
有一个更简单的推荐: http://python-rq.org/, Github 地址: https://github.com/nvie/rq

只需要 Redis 就可以了,简单易用。
xrlin
2017-02-21 18:00:32 +08:00
这种情况一般用任务队列。
SP00F
2017-02-21 18:01:31 +08:00
#6 漏正解, Celery 异步处理。
tumbzzc
2017-02-21 18:12:03 +08:00
简单一点,后台另起脚本运行任务,最后的结果输出到一个结果页面,那样就随便切换了
Kilerd
2017-02-21 18:19:35 +08:00
任务队列
ansheng
2017-02-21 18:43:36 +08:00
Celery 异步调用。
SlipStupig
2017-02-22 16:21:46 +08:00
一点不影响啊,一个任务对应一个线程,把一个任务对应一个任务 ID ,线程把进度保持到数据库里面就行( mysql sqlite mongodb redis 等等都可以),前端读数据库就可以了,一点也不复杂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/342097

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX