2017-04-27 9 views
1

我正在創建一個使用P4Python的run_sync的工具。我注意到,如果文件不能被覆蓋,例如它是一個打開的.exe,P4Python等待大約2分鐘,並嘗試10次覆蓋它。 這需要太長時間,我需要一些方法來縮短/中斷操作。設置超時/嘗試次數/強制停止同步P4Python中有問題的文件

我知道,在控制檯中的時間可以縮短用:

p4 -r[number of tries] -vnet.maxwait=[seconds of waiting] 

但隨着P4Python全局參數不能用這種方式,我無法找到設置這些參數的方式。

另一種解決方案是發送一個信號,以停止同步,但我也沒有找到辦法做到這一點。

我該怎麼辦?

+0

你可以爲運行方法編寫一個上下文管理器,它與主線程異步運行,如果運行時間過長會被殺死?您必須確保僅在異步線程上實例化連接以避免連接衝突,儘管 – MaVCArt

回答

2

有一個公開的請求通過P4Python公開此功能,我添加了這篇文章的細節。 作爲解決方法,您可以嘗試覆蓋'p4.run_sync'方法,並更改嘗試同步文件的默認次數。

你也可以對'p4'進行系統調用。

+0

感謝您的回覆,我現在就暫時離開它,然後我不想修改P4Python或將應用程序更改爲使用命令行 –

相關問題