Python 进程池内容没有被执行,求大佬给看一眼啊

荒-于嬉 2020-10-06 02:58:42
我写了一个用于列出HBASE所有表,然后获取表明批量提交给进程池然后执行删除操作的,不知为什么进程池的函数没有被执行,求大佬看一眼

```
import happybase
import time
from multiprocessing import Pool
import tkinter

class hbase_drop_table():
def tkinter_table(self):
window = tkinter.Tk()
window.title("删除HBASE表")
window.geometry("600x400")
self.test_read = tkinter.Text(window,width=20,height=1)
self.test_read.place(x=10,y=10)
button_ok = tkinter.Button(window,text="确认",command=self.drop_table)
button_ok.place(x=10,y=40)
window.mainloop()
def pool_drop_table(self,table_name): # 这段没有执行,里面的print什么都没输出
print("drop-table name:" + table_name)
self.conn.delete_table(table_name, disable=True)
def drop_table(self):
hbase_ip = self.test_read.get(0.0, tkinter.END).replace("\n", "")
self.conn = happybase.Connection(hbase_ip, port=9090)
table_name_list = self.conn.tables()
pool = Pool(10)
for i in table_name_list:
print(i)
pool.apply_async(self.pool_drop_table,args=(i.decode('utf-8'),))
pool.close()
pool.join()
print("结束")

if __name__ == '__main__':
hdt = hbase_drop_table()
hdt.tkinter_table()
```

运行结果:
b'BEHAVIOR_HISTORY'
b'BEHAVIOR_MATCHED'
b'CUSTOM_LIST_HISTORY'
b'CUSTOM_LIST_HISTORY_EN'
b'CUSTOM_LIST_MATCHED'
b'CUSTOM_LIST_MATCHED_EN'
b'CUSTOM_LIST_NOMATCHED'
b'DATA_CONTACT'
b'DATA_MAPPING'
b'STATISTIC_ENCRYPTION_STR'
b'behavior_probe'
b'data_expire_so_default_tenant_contact'
b'data_track_so_default_tenant_contact'
b'pagePv_probe'
结束
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: cHRM chunk does not match sRGB

Process finished with exit code 0

...全文
325 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
荒-于嬉 2020-10-20
  • 打赏
  • 举报
回复
大佬方便加个QQ或微信什么的吗,这里太不方便了
荒-于嬉 2020-10-20
  • 打赏
  • 举报
回复
{0}是不是要加引号,然后最后少个括号?
荒-于嬉 2020-10-20
  • 打赏
  • 举报
回复
加下QQ好吧大佬 528909316
秋千Swing0_0 2020-10-20
  • 打赏
  • 举报
回复
私聊私聊,一起学习
秋千Swing0_0 2020-10-19
  • 打赏
  • 举报
回复
pool.apply_async(self.pool_drop_table,({0}.format(i.decode('utf-8'))) 这样试试
荒-于嬉 2020-10-19
  • 打赏
  • 举报
回复
万分感谢,已经试过了,还是不行
秋千Swing0_0 2020-10-18
  • 打赏
  • 举报
回复
同样遇到了这个问题,貌似出现在 pool.apply_async(self.pool_drop_table,args=(i.decode('utf-8'),)) 不知道为什么args传的值一直传不进去 最后我使用args=({0}.format(i.decode('utf-8'))传进去的 至于为啥传不进去……我也没搞懂

37,717

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧