Frappe default time is 300s, So if your job runtime over 300s, Frappe will throw below exception
rq.timeouts.JobTimeoutException: Task exceeded maximum timeout value (300 seconds)
But some job need spend a lot of time, So we can set below settings in common_site_config.json
"workers": {
"default": {
"timeout": 900
},
"short": {
"timeout": 900
}
}
Because frappe background_jobs.py allow overwrite settings from common_site_setting.json
# https://github.com/frappe/frappe/blob/develop/frappe/utils/background_jobs.py#L26
common_site_config = frappe.get_conf()
custom_workers_config = common_site_config.get("workers", {})
default_timeout = 300
return {
"default": default_timeout,
"short": default_timeout,
"long": 1500,
# This Part allow custom_workers_config to override
**{
worker: config.get("timeout", default_timeout)
for worker, config in custom_workers_config.items()
}
}
PS: 所有操作都在 ~ 路徑下
Aug 2, 2024ERPNext 開發雜記 不知道怎麼分類的紀錄都會丟到這邊來 發票金額的四捨五入 由於台灣的發票金額,稅費等都是整數,而 ERPNext 的金額預設都會有小數點,因此需要透過一些設定來讓 ERPNext 在計算時將金額與稅費時自行四捨五入,以符合台灣的使用習慣。 1. 設定 Regional ERPNext 會根據當前的區域,若為特地區域會有不一樣的金額計算方式(ERPNext 的 Regionl 設定),因此我們可以按照 ERPNext 的做法,在 hooks.py 中新增一個 Taiwan,並且設定要 Override 的 method,如下: # hooks.py
Feb 10, 2022Frappe 的 Excel 匯出格式設定 在使用 Frappe 內建的匯出下載報表時,若為數值(Number)或幣值(Currency)資料,在 Excel 中便會自動靠右,不過因客戶需求的關係,我們需要將某些數字格式化 XX,XXX NTS 這種格式,此時資料型態已經是 String,在 Excel 中便不會靠右,因此需要針對 Frappe 的 make_excel 進行修改(Source Code) import openpyxl from openpyxl.styles import Font, Alignment from openpyxl.utils import get_column_letter from frappe.utils.xlsxutils import handle_html def make_xlsx(data, sheet_name, wb=None, column_widths=None):
Dec 8, 2021在 MultiSelectDialog 中預設 Filter 在上圖的情境中,點選右上角的「從...獲取項目」後,會出現途中的 Dialog,由於客戶要求在 Dialog 中可以有預設的 Filter,這在 Frappe 的 Dialog 物件中有類似的 function 能用,但 ERPNext 在產生這個 Dialog 時(utils.js #L705),雖然 map_current_doc 有回傳 Dialog 的物件,不過在purchase_invoice.js #L109中,並沒有變數去接這個物件,因此為了達成這個功能,就需要稍微修改一下 map_current_doc 才能夠達成。 Step.1 透過 Form Event 掛載自定義的 JS Frappe Form Event 新增一個 JS 檔,設定 Listen 「Purchase Invoice」(這邊能換成任何一個 Module,此部分以 Purchase Invoice 為例),以及一個 onload 事件。 frappe.ui.form.on("Purchase Invoice", {
Dec 8, 2021or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up