看板 Soft_Job 關於我們 聯絡資訊
進入這行已經八個年頭 呆過四間公司 Vendor Side & User Side都有 開發維護過系統非常多元 我們知道大型企業裡的資訊系統 除了一些給人操作的 GUI類型系統外 還有一大部分是默默的躲在背後定期被執行或常駐型的AP 我習慣稱他們為 scheduling job或daemon 這類job的行為不外乎也是CRUD 外加call call其他系統提供的API 來達成企業營運上的特定需求 //這類API的interface如ejb/webservices/rpc/rmi/corba/rest/DCOM/socket daemon 例如 製造業MES/CIM會有一些automation job來取代人為操作 電信業/金融業會有一些cycle job負責出帳 ERP薪資系統負責算錢的job 等等..... 這類job的execution frequency 短到每五分鐘或長到每一個月才執行一次的都有 然而這些job的可靠度是很重要的,因為一但job發生run time fail或是 該起來的時機沒起來,都會讓相關使用者單位遭受到很大的impact,所以一般都會在 implement一些monitor或是defense機制來確保其可靠性 小弟過去所遇過這類的critical job實作技術大部分都是用下列技術 1 用java/c/c++/寫成 batch job 部署到unix/linux上設crontab執行 2 有效能考量且不用跨multi db source也無跨系統間API呼叫的需求 就可以寫成oracle procedure 在用unix shell script去定期invoke之類的 3 花俏一點會用一些 3-party scheduling framework或自己implement framework 來控制這些job的排程 最近來到一個新環境,部門這類的job的在整體系統裡扮演的重要性是很高的 也就是job fail都會對公司營運造成很大的impact 但是卻發現開其發技術卻是用舊VB/Delphi寫成windows exe檔 然後跑再windows 2000上,使用的scheduling tool是system scheduler, 整個可靠度就很低。 job常常莫名的crash就跳出memory violation address之類視窗的,或是莫名奇妙 連跑都沒跑,不然就是windows server動不動當機要重開 最近被assign一個任務 要弄一個defense平台來確保這些job執行的可靠度,真是頭很大 總不能請所有owner翻掉重寫全搬到unix上吧(有1000多隻..XD) 想到的低級的方法是用table來記錄每個job的執行status,在去monitor這些status 進一步實作alarm和recovery機制 拋出這個有趣的問題來跟大家討論(純討論),板上有經驗的人 有無其他更好的solution,或現成好用的job monitor tool (for windows platform) 可以介紹給小弟 另外閒聊話,那些入行10 ~ 20年的前輩,在90年代這類job都是什麼樣的技術實作呀 DOS上跑Basic ? 還是傳統的Unix + C 最流行 ? 牢騷話...我離開java/unix環境就整個不對勁 Orz.. 另外.NET上有無可靠度高的scheduling framework可用 ? 軟體版來討論一些solution腦力激盪一下吧 ... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.255.178.76
koller:你可以全部寫英文嗎 看得很痛苦耶 =.= 08/10 23:00
OriginStar:我同事寫個Java的Process Monitor,主要是因為客戶要求 08/10 23:01
OriginStar:若被監控的ap掛了,可以自動重啟,供原PO參考 08/10 23:01
joy830:推1F 08/10 23:20
jej:噓1F..懶得看可以不用寫..請提供意見..其實我也有相同的困擾.. 08/10 23:24
andymai:語言夾雜也還好吧~我很好奇在看像"小孩不笨"之類的新加坡 08/10 23:46
andymai:電影~會不會更痛苦??? 08/10 23:47
slalala:oracle all_jobs 08/10 23:54
kenzou:一樓可以去阿六的論壇呀,他們都中文化的很徹底呢。 08/11 00:17
bobju:讀起來蠻順的呀, 1F會感到痛苦? 08/11 01:02
bobju:90年代大約還是用unix shell script較多. 08/11 01:03
remmurds:在windows上可以考慮改寫成windows service 08/11 07:14
remmurds:.net framework對這方面有支援 08/11 07:15
Maisky:Real Time Java JSR1 08/11 07:40
Label:我覺得 服務+事件檢視器 是還不錯的Solution 08/11 08:44
Label:但Service要非常注意記憶體裡 而且Service也不太容易Debug 08/11 08:45
breakingball:十年前mainframe上的cronjob不是shell就是perl 08/11 11:40
DeathTemp:我比較想知道為什麼job會crash... 08/11 19:42
epola:為何會感到痛苦 ? 一般的用語啊 08/11 20:17
wancd:job會crash的情況不多 但遇到不執行時就很頭疼 08/12 00:05
TroyLee:我覺得考靠度低有一半問題在程式設計師... 08/13 21:35
TroyLee:不能說你看他用VB/Delphi在win2k上跑就一定低 08/13 21:35
TroyLee:如果程式本身沒有做完善的考慮 就不應該歸咎到語言及平台 08/13 21:36