真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SAPABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

本篇文章給大家分享的是有關(guān)SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)公司專注于峨邊彝族企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城開發(fā)。峨邊彝族網(wǎng)站建設(shè)公司,為峨邊彝族等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

Linux系統(tǒng)很多服務(wù)都通過守護(hù)進(jìn)程實(shí)現(xiàn),常見的守護(hù)進(jìn)程有系統(tǒng)日志進(jìn)程syslogd,web服務(wù)器httpd,郵件服務(wù)器sendmail和數(shù)據(jù)庫服務(wù)器MySQLd等。

那么在ABAP里能否實(shí)現(xiàn)具有守護(hù)進(jìn)程特性的報(bào)表?這個(gè)需求翻譯成ABAP的術(shù)語,即是否能夠開發(fā)一個(gè)滿足下列特征的ABAP程序?

終端(SAPGUI或ABAP Development Tool)關(guān)閉后仍然能夠繼續(xù)運(yùn)行,且能繼續(xù)接收用戶輸入,處理并推送結(jié)果給用戶。

很多朋友一定很快就會(huì)想到ABAP后臺(tái)作業(yè)。沒錯(cuò),開發(fā)一個(gè)ABAP報(bào)表,以后臺(tái)作業(yè)的方式啟動(dòng),的確可以實(shí)現(xiàn)脫離終端運(yùn)行的效果。然而這種后臺(tái)作業(yè)無法再以普通方式接受用戶輸入,一種比較笨重的解決方式是采取生產(chǎn)者-消費(fèi)者的思路,定義一個(gè)數(shù)據(jù)庫表,充當(dāng)任務(wù)隊(duì)列;用戶將請(qǐng)求插入到該數(shù)據(jù)庫表里,而后臺(tái)作業(yè)程序周期性地去查詢?cè)摂?shù)據(jù)庫表,如果非空,則取出請(qǐng)求并處理。

另一種思路就是在事務(wù)碼SICF里創(chuàng)建一個(gè)新的節(jié)點(diǎn)并在其handler class里書寫處理邏輯,這樣消費(fèi)者可以發(fā)送HTTP請(qǐng)求到該ICF節(jié)點(diǎn)負(fù)責(zé)的url,并接收處理結(jié)果。

之前Jerry的文章 一個(gè)13年ABAP老兵的建議:了解這些基礎(chǔ)知識(shí),對(duì)ABAP開發(fā)有百利而無一害介紹過,ABAP服務(wù)器同外界通過HTTP交互,會(huì)經(jīng)過Internet Communication Manager(ICM)這個(gè)模塊,通過這種方式實(shí)現(xiàn)的ABAP程序,表面上看也勉強(qiáng)模仿了守護(hù)進(jìn)程的效果,但請(qǐng)求處理的性能和真正的守護(hù)進(jìn)程相比相差甚遠(yuǎn),并且本質(zhì)上是借助Web服務(wù)器實(shí)現(xiàn)的。

一個(gè)好消息是,在2018年SAP發(fā)布的ABAP Platform 1809中,提到了一些激動(dòng)人心的新特性,比如針對(duì)工業(yè)物聯(lián)網(wǎng)(Industrial IoT)和Machine-to-Machine通信的增強(qiáng),MQTT的引入,以及對(duì)ABAP Daemons的原生支持。

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

本文我們就用ABAP平臺(tái)1809新引入的ABAP MQTT和ABAP Daemons來實(shí)現(xiàn)一個(gè)Hello World級(jí)別的ABAP守護(hù)進(jìn)程。

MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸協(xié)議)是一種基于發(fā)布/訂閱模式的輕量級(jí)通訊協(xié)議,構(gòu)建于TCP/IP協(xié)議上,因其低開銷和低帶寬占用的優(yōu)點(diǎn),在物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等方面應(yīng)用特別廣泛。

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

關(guān)于ABAP平臺(tái)1809新特性的更多介紹,請(qǐng)參閱SAP社區(qū)博客:

https://1/abap-platform-for-sap-s4hana-1809/http://,可以使用下面這個(gè)用webSocket實(shí)現(xiàn)的MQTT客戶端來操作該broker:

http://www.ket-client/

這個(gè)broker專門用于測(cè)試用途,收到MQTT消息后,會(huì)原封不動(dòng)地將其回復(fù)給發(fā)送方。

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

在ABAP類的構(gòu)造函數(shù)里連接MQTT broker,把返回的MQTT客戶端實(shí)例存儲(chǔ)在類的成員變量mo_mqtt_client里,接下來就能使用該實(shí)例的publish方法去發(fā)送消息,subscribe方法訂閱消息,on_message方法接收消息。

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

打開MQTT客戶端,訂閱渠道:abaptopic/jerry/test

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

接著我首先在第66行,往該渠道發(fā)送一條Hello World的消息,broker收到后會(huì)將其原封不動(dòng)地返回,但因?yàn)槲业腁BAP類并沒有訂閱這個(gè)渠道,因此不會(huì)收到這條hello world消息的回復(fù)。

第68行訂閱該渠道后,第69行發(fā)送第二條消息給broker,這次就能收到其回復(fù)了。

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

回到broker客戶端,看到從ABAP端發(fā)送過來的兩條消息:

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

回到ABAP端,看到代碼第69行發(fā)送的第二條消息的回復(fù):

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

弄清楚ABAP MQTT的用法之后,我們就可以動(dòng)手開發(fā)ABAP守護(hù)進(jìn)程了。雖然ABAP守護(hù)進(jìn)程并沒有直接使用MQTT同使用者進(jìn)行交互,但是掌握這種消息通知機(jī)制的用法,對(duì)我們了解ABAP守護(hù)進(jìn)程的工作原理也有幫助。

新建一個(gè)ABAP類zcl_jerry_simple_daemon,將cl_abap_daemon_ext_base設(shè)置成其父類。

從基類繼承的這些ON開頭的方法,即ABAP守護(hù)進(jìn)程生命周期事件發(fā)生時(shí),開發(fā)人員能夠?qū)崿F(xiàn)自定義邏輯的位置,比如在系統(tǒng)SHUTDOWN時(shí),開發(fā)人員實(shí)現(xiàn)的ON_SYSTEM_SHUTDOWN方法會(huì)觸發(fā),在此處完成守護(hù)進(jìn)程的清理動(dòng)作,實(shí)現(xiàn)優(yōu)雅退出。

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

而最有用的方法,無疑就是ON_MESSAGE,這也是守護(hù)進(jìn)程接收用戶輸入并響應(yīng)的地方。

為簡(jiǎn)單起見,我的守護(hù)進(jìn)程收到用戶輸入后,僅僅彈出一個(gè)彈出對(duì)話框,顯示在SAPGUI里:

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

守護(hù)進(jìn)程的啟動(dòng)則通過框架類cl_abap_daemon_client_manager的start方法實(shí)現(xiàn),第75行start方法傳入的參數(shù)lo_pcp作為守護(hù)進(jìn)程啟動(dòng)參數(shù)一并傳入,pcp代表Push Channel Protocol,一種用于消息傳遞的數(shù)據(jù)結(jié)構(gòu)。

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

使用下列語句啟動(dòng)該守護(hù)進(jìn)程,將其命名為jerry_daemon:

zcl_jerry_simple_daemon=>start( iv_daemon_name = 'jerry_daemon' ).

在事務(wù)碼SMDAEMON里可以看到所有正在運(yùn)行的守護(hù)進(jìn)程:

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

打開SAPGUI,使用如下的方法向jerry_daemon這個(gè)ABAP守護(hù)進(jìn)程發(fā)送一條消息,會(huì)立即在SAPGUI里看到守護(hù)進(jìn)程的on_message方法里彈出的對(duì)話框:

SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么

因此將來我們?nèi)绻龅叫枰_發(fā)長(zhǎng)時(shí)間脫離終端運(yùn)行且仍需響應(yīng)用戶輸入的ABAP程序,除了ABAP后臺(tái)作業(yè)和SICF服務(wù)外,又多了ABAP守護(hù)進(jìn)程這種選擇。

以上就是SAP ABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)站題目:SAPABAP守護(hù)進(jìn)程的實(shí)現(xiàn)方式是什么
轉(zhuǎn)載來源:http://weahome.cn/article/pcocss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部