V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  qazwsxkevin  ›  全部回复第 22 页 / 共 24 页
回复总数  471
1 ... 14  15  16  17  18  19  20  21  22  23 ... 24  
2019-12-03 17:54:29 +08:00
回复了 qazwsxkevin 创建的主题 MySQL 请教合拼两张表的方法(两张表有重复的自增长 id)
@QQQQQQQ 不知道是我理解的不对问题,还是您了。。。
不是 NOT EXISTS 的问题?
重复的值是主键,想寻求方法,便捷地将 bb 的主键去掉,或者重新调整一个范围。。。
去到 aa 表里,所有主键 id 也是需要重新梳理一次的,所以添加数据前,bb 表的 id 随便调节一个范围也没问题,或者说有啥办法连调节都不需要了,直接就添加过去 aa 表了。。。
还是您意思是,两表主键重复也可以 NOT EXISTS 强势 insert?
2019-11-29 22:27:58 +08:00
回复了 qazwsxkevin 创建的主题 Python 请教 concurrent.futures 多进程之间,如何共享变量?
@wuwukai007 明白。。。。


不是传进变量进进程执行函数。。。
各个进程都是是同一款执行函数,想让这个函数在执行过程当中传个变量出来(或者说是去对一个全局,其它进程也可以访问的变量进行动态修改),各个进程函数也会在不同的阶段,去读取这个变量去做判断?
2019-11-28 14:28:54 +08:00
回复了 okwork 创建的主题 问与答 怎么证明是内容的原作者?
以前见到过一些网文,在后面大概有这么一句话,,本文已经过区块链发布……
做了一个简单测试,情况不妙,估计不好。。。

else: # 见到有空闲的进程就提交任务
FutureRetList[i] = FutureList[i].submit(SProcessFunc, str(i + 1), SomeDict,Task[j],countt,ErrorLogFilePath)
FutureStartTimeList[i] = time.time()
FutureProcSuit[i] = Task[j] # 记下这个任务,准备在失败的时候,再调出进行重新提交,反正是死磕到任务成功为止
print("进程池:[" + Process_i + "] 提交了: [" + countt + "] 是第 [" + str(countt) + "] 个任务.",f"{time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())}")


pid = (list(FutureList[i]._processes.keys()))[0]
print(pid)
time.sleep(20)
#进行 20 秒左右后杀进程
exeCstr = "taskkill -f -pid " + str(pid)
os.system(exeCstr)
time.sleep(10)
#再次提交
FutureRetList[i] = FutureList[i].submit(SProcessFunc, str(i + 1), SomeDict,Task[j],countt,ErrorLogFilePath)




在杀进程后,直接就抛出异常了,再次提交也是不行的,直接报 1 码结束了主程序,整体结束。

outut:

Traceback (most recent call last):
File "D:/Work//SPFromDB.py", line 309, in <module>
FutureRetList[i] = FutureList[i].submit(SProcessFunc, str(i + 1), SomeDict,Task[j],countt,ErrorLogFilePath)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\concurrent\futures\process.py", line 452, in submit
raise BrokenProcessPool('A child process terminated '
concurrent.futures.process.BrokenProcessPool: A child process terminated abruptly, the process pool is not usable anymore

进程已结束,退出代码 1
@ManjusakaL 明白思路了,是一个办法。。。,暂时无法理解一个“unique 的参数”?是什么,得琢磨琢磨。。。^_^

看看有没有其它更好的办法?
@ManjusakaL 可以对线程启动的内容纪录 PID ? 假如各个进程跑的都是是 Chrome.exe ,12 个进程跑满,内存会有 N 个 python.exe ,N 个 Chrome.exe ,怎么分辨谁是谁? 能零失误杀进程?
以前只试过用 psutil.pids()来获取 PID 杀进程。。。
@feelapi 请教,如果业务的具体逻辑实现用 cpp 开发,在 win 的平台下(不使用 WEB 的方式,WEB 在人力的成本投入其实不低吧?)用什么做 UI,衔接最好,成本最低,人也容易上手?
@JoeoooLAI,多线程没试过,我是前一段时间试过多进程会有这种情况
@liukangxu 应该不会,CPU 数和核数,是很清楚的,我打算这几天忙完后,再申请个虚拟机试试,



刚才上面忘了补充,是虚拟机是 Win7
2019-11-18 23:14:32 +08:00
回复了 ArJun 创建的主题 问与答 如何看待潘石屹学 Python ?
不知道目的何在
如果有切合实际的目的
我是这样看的
在高度来看,目标产出比会比靠这口饭活的人高很多
他对学习 python 有问题的话,解决时效会比 v2 的所有人都会优良(他有钱去推磨)
他一定不会学习细到很细(譬如去找 python 工作的要求),但是他应该能触悟到比靠用 python 吃饭的人更多的东西
总之,真要学,他起点非常高。
v2ray 是不是已经确定被可以被干扰了?
2019-11-13 20:06:32 +08:00
回复了 JustinL 创建的主题 微信 有人觉得微信监听聊天内容吗?
@a566 [一般来说输入法监听的比较严重,最好是用谷歌已经停止更新的输入法]
有么? 特指哪个最后的版本? 可否给大家贴个传送门?
2019-11-13 10:54:46 +08:00
回复了 dongcxcx 创建的主题 问与答 腾迅云 hk 主机稳定吗
广州,联通线路,连接 11~15ms 之间
2019-11-13 10:53:52 +08:00
回复了 dongcxcx 创建的主题 问与答 腾迅云 hk 主机稳定吗
11.11 新用户 88 ¥一年买了一个,现在都还未有时间架设,只是早前听说过用企鹅和阿狸的 HK 主机做梯不会被封,或者说被封几率比较低,这次有优惠就先买了先
粗暴点,爬出去,把相近版本的 chromedriver 都下载下来,逐个替换上去试试
我记得 webdriver 有 option 是可以指定 driver.exe 的路径的。。。
by the way,我没有路由器的管理权
2019-10-26 17:25:50 +08:00
回复了 qazwsxkevin 创建的主题 Python multiprocessing 的进程池,能否做到监控一些状态?
@ClericPy,有不明白的地方,concurrent.futures,比如:

```
eStatusSuit = []
e = futures.ProcessPoolExecutor(max_workers=5)
eStatus = e.submit(ProcessCaseID,someVarA ,someVarB)
eStatusSuit.append(eStatus)
#
eStatus = e.submit(ProcessCaseID,someVarC ,someVarD)
eStatusSuit.append(eStatus)
#
eStatus = e.submit(ProcessCaseID,someVarE ,someVarF)
eStatusSuit.append(eStatus)

#此时是向 e 提交了 3 个任务
#eStatus 对象,我看了一下,似乎是无法查看到 33 个任务具体状态,只能等待 eStatus 全体执行完毕,全部返回 eStatus.result()?
#eStatus.result()是个阻塞式,想不到怎么用。。。

#我是想建立能跑 5 个进程的可控队列,不知道这么干是否合适,还是有更方便的方式?

aExecutor = futures.ProcessPoolExecutor(max_workers=1)
bExecutor = futures.ProcessPoolExecutor(max_workers=1)
cExecutor = futures.ProcessPoolExecutor(max_workers=1)
dExecutor = futures.ProcessPoolExecutor(max_workers=1)
eExecutor = futures.ProcessPoolExecutor(max_workers=1)

然后做个
aExecutorStatus = aExecutor.submit(ProcessCaseID,someVarA ,someVarB)
bExecutorStatus = bExecutor.submit(ProcessCaseID,someVarC ,someVarD)
#省略...

#对各个 ExecutorStatus 的 running(),done()进行循环判断,哪个 False/True 了,就从 queue 里取任务提交过去,哪个失败了,再调度一下优先权
if aExecutorStatus.running():
xxx
#省略...

不知道是不是这样乱来的?
```
@momocraft
@ClericPy
嗯,明白了,感谢,回头我尽量把方式改为 with,有个基础概念不是很清晰的地方,with 包起来的内容,完成后我记得应该是全自动清的,而不用手动去 close,不知道有无理解错(刚起步写 python 没多久,以前基本没用过 with )


另请教 @ClericPy:见过大佬您多次推荐 cdp,其实很早想请教在 github 或者其它地方,有无简单入门的 demo 例子,可以实现 cdp 去 open link,对页面 id/xpath 进行点击,获取页面 html 代码这些简单的起步学习? 官网的每个方法的解释,比较碎...
@Trim21 嗯嗯,是的,是 finnally 里,其实我原本的代码里,finally 是没有的...
1 ... 14  15  16  17  18  19  20  21  22  23 ... 24  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5018 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 09:02 · PVG 17:02 · LAX 01:02 · JFK 04:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.