REST ಮತ್ತು ವರ್ಕ್‌ಫ್ಲೋ ಎಂಜಿನ್ (ಜಾವಾ ಇಲ್ಲ) ಆಧರಿಸಿ ಸುಲಭವಾದ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್‌ಗಾಗಿ ಕ್ಯಾಮುಂಡಾವನ್ನು ಬಳಸುವುದು

ಹೇ ಹಬ್ರ್! ನಾನು ನಿಮ್ಮ ಗಮನಕ್ಕೆ ಲೇಖನದ ಅನುವಾದವನ್ನು ಪ್ರಸ್ತುತಪಡಿಸುತ್ತೇನೆ "Camunda ಅನ್ನು ಬಳಸಲು ಸುಲಭವಾದ REST-ಆಧಾರಿತ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್ ಮತ್ತು ವರ್ಕ್‌ಫ್ಲೋ ಎಂಜಿನ್‌ನಂತೆ ಬಳಸಿ (ಜಾವಾವನ್ನು ಮುಟ್ಟದೆ)" ಬರ್ಂಡ್ ರೂಕರ್ ಅವರಿಂದ.

07.07.2020/XNUMX/XNUMX, ಅನುವಾದ ಲೇಖನಗಳು ಬರ್ಂಡ್ ರಕರ್

REST ಮತ್ತು ವರ್ಕ್‌ಫ್ಲೋ ಎಂಜಿನ್ (ಜಾವಾ ಇಲ್ಲ) ಆಧರಿಸಿ ಸುಲಭವಾದ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್‌ಗಾಗಿ ಕ್ಯಾಮುಂಡಾವನ್ನು ಬಳಸುವುದು

ನಾನು ಜಾವಾ ಅಲ್ಲದ ಜನರೊಂದಿಗೆ ಮೈಕ್ರೋ ಸರ್ವಿಸ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಹೆಚ್ಚಾಗಿ ಚರ್ಚಿಸುತ್ತೇನೆ: C# ಡೆವಲಪರ್‌ಗಳು, Node.JS/JavaScript ಡೆವಲಪರ್‌ಗಳು, ಅಥವಾ ಗೋಲಾಂಗ್ ಅಭಿಮಾನಿಗಳು. ಮೈಕ್ರೊ ಸರ್ವಿಸ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ನಲ್ಲಿ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್ ಮೆಕಾನಿಸಂ ಅಥವಾ ವರ್ಕ್‌ಫ್ಲೋ ಅನ್ನು ಸುಗಮಗೊಳಿಸಲು ಮತ್ತು ಆರ್ಡರ್ ಮಾಡುವ, ಟೈಮ್‌ಔಟ್‌ಗಳು, ಸಾಗಾ ಮತ್ತು ಸರಿದೂಗಿಸುವ ವಹಿವಾಟುಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಪಡೆಯುವ ಸಾಧನದ ಅಗತ್ಯವಿದೆ ಎಂಬ ಅಂಶವನ್ನು ಅವರೆಲ್ಲರೂ ಎದುರಿಸುತ್ತಾರೆ.

ಜೊತೆಗೆ BPM ವೇದಿಕೆ ಕ್ಯಾಮುಂಡಾದಿಂದ ಮುಕ್ತ ಮೂಲ ಅಂತಹ ಕಾರ್ಯಗಳಿಗೆ ಅದ್ಭುತವಾಗಿದೆ. ಡೆವಲಪರ್ ಸ್ನೇಹಪರತೆಯು ಉತ್ಪನ್ನದ ಪ್ರಮುಖ ಲಕ್ಷಣಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಆದರೆ ನೀವು ಅದರ ದಸ್ತಾವೇಜನ್ನು ನೋಡಿದರೆ, ಕ್ಯಾಮುಂಡಾದ "ಸ್ನೇಹಪರತೆ" ಮುಖ್ಯವಾಗಿ ಜಾವಾ ಡೆವಲಪರ್‌ಗಳನ್ನು ಗುರಿಯಾಗಿರಿಸಿಕೊಂಡಿದೆ ಎಂಬ ಅಭಿಪ್ರಾಯವನ್ನು ನೀವು ಪಡೆಯಬಹುದು. ನಿಮ್ಮ ಸ್ವಂತ ಕಾರ್ಯಗಳು ಮತ್ತು ವಿಸ್ತರಣೆಗಳನ್ನು ಸಂಪರ್ಕಿಸಲು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಬಹಳಷ್ಟು ಆಯ್ಕೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಆದರೆ ಎಲ್ಲವನ್ನೂ ಜಾವಾದಲ್ಲಿ ಮಾಡಲಾಗುತ್ತದೆ. ಇದು ನಿಜವಾಗಿಯೂ?

ಇಲ್ಲ! ವಾಸ್ತವವಾಗಿ, ನೀವು ಯಾವುದೇ ಜಾವಾ ಜ್ಞಾನವಿಲ್ಲದೆ ಸುಲಭವಾಗಿ ಕ್ಯಾಮುಂಡಾವನ್ನು ಚಲಾಯಿಸಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಆಯ್ಕೆಯ ಯಾವುದೇ ಭಾಷೆಯಲ್ಲಿ ಕೋಡ್‌ಗಾಗಿ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಹೊಂದಿಸಬಹುದು. ಈ ಲೇಖನದಲ್ಲಿ, ನಾವು ನೋಡುತ್ತೇವೆ:

  • ಮೂಲ ವಾಸ್ತುಶಿಲ್ಪ;
  • REST API
  • ಜಾವಾ ಹೊರತುಪಡಿಸಿ ಇತರ ಭಾಷೆಗಳಿಗೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿಗಳ ಕುರಿತು ಸಲಹೆ;
  • C# ಮತ್ತು Node.JS ಅನ್ನು ಬಳಸುವ ಉದಾಹರಣೆ;
  • ಕ್ಯಾಮುಂಡಾ ಸರ್ವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುವ ಮಾರ್ಗಗಳು (ಡಾಕರ್ ಅಥವಾ ಟಾಮ್‌ಕ್ಯಾಟ್).

ವಾಸ್ತುಶಿಲ್ಪ

ಕ್ಯಾಮುಂಡಾವನ್ನು ಜಾವಾದಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು ಚಲಾಯಿಸಲು ಜಾವಾ ವರ್ಚುವಲ್ ಮೆಷಿನ್ (ಜೆವಿಎಂ) ಅಗತ್ಯವಿದೆ. Camunda ನೀವು ಇಷ್ಟಪಡುವ ಯಾವುದೇ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಲು ಮತ್ತು Camunda ನೊಂದಿಗೆ REST ಅನ್ನು ಬಳಸಲು ಅನುಮತಿಸುವ REST API ಅನ್ನು ಒದಗಿಸುತ್ತದೆ:

REST ಮತ್ತು ವರ್ಕ್‌ಫ್ಲೋ ಎಂಜಿನ್ (ಜಾವಾ ಇಲ್ಲ) ಆಧರಿಸಿ ಸುಲಭವಾದ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್‌ಗಾಗಿ ಕ್ಯಾಮುಂಡಾವನ್ನು ಬಳಸುವುದು

ಕ್ಯಾಮುಂಡಾದಲ್ಲಿನ ಕೆಲಸದ ಹರಿವುಗಳನ್ನು BPMN ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ, ಇದು ಮೂಲತಃ XML ಫೈಲ್ ಆಗಿದೆ. ಇದರೊಂದಿಗೆ ಮಾದರಿಯಾಗಬಹುದು ಕ್ಯಾಮುಂಡಾ ಮಾಡೆಲರ್.

ಪೂರ್ವ-ನಿರ್ಮಿತ ಡಾಕರ್ ಚಿತ್ರದ ಮೂಲಕ ಕ್ಯಾಮುಂಡಾವನ್ನು ಚಾಲನೆ ಮಾಡಲಾಗುತ್ತಿದೆ

ಕ್ಯಾಮುಂಡಾವನ್ನು ಚಲಾಯಿಸಲು ಸುಲಭವಾದ ಮಾರ್ಗವೆಂದರೆ ಡಾಕರ್ ಅನ್ನು ಬಳಸುವುದು. ಕ್ಯಾಮುಂಡಾವನ್ನು ಪ್ರಾರಂಭಿಸಲು ಪರ್ಯಾಯ ಮಾರ್ಗಗಳನ್ನು ಈ ಲೇಖನದಲ್ಲಿ ನಂತರ ವಿವರಿಸಲಾಗಿದೆ.

REST ಮತ್ತು ವರ್ಕ್‌ಫ್ಲೋ ಎಂಜಿನ್ (ಜಾವಾ ಇಲ್ಲ) ಆಧರಿಸಿ ಸುಲಭವಾದ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್‌ಗಾಗಿ ಕ್ಯಾಮುಂಡಾವನ್ನು ಬಳಸುವುದು

ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಸರಳವಾಗಿ ಚಲಾಯಿಸಿ:

  docker run -d -p 8080:8080 camunda/camunda-bpm-platform:latest

ನೀವು Linux, JVMs ಅಥವಾ Tomcats ಬಗ್ಗೆ ಚಿಂತಿಸಬೇಕಾಗಿಲ್ಲ. ಡಾಕರ್‌ಫೈಲ್‌ಗಳು ಮತ್ತು ಮೂಲ ದಾಖಲಾತಿಗಳು (ಉದಾಹರಣೆಗೆ, ಅಗತ್ಯವಿರುವ ಡೇಟಾಬೇಸ್‌ಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲು ಸೂಚನೆಗಳು) ಇಲ್ಲಿ ಲಭ್ಯವಿದೆ github.

ನೀವು ಕ್ಯಾಮುಂಡಾ ಎಂಟರ್‌ಪ್ರೈಸ್ ಆವೃತ್ತಿಯನ್ನು ಚಲಾಯಿಸಲು ಬಯಸಿದರೆ ನೀವು ಸುಲಭವಾಗಿ ಬದಲಾಯಿಸಬಹುದು ಡಾಕರ್‌ಫೈಲ್.

ಆದಾಗ್ಯೂ, ಡಾಕರ್‌ನೊಂದಿಗೆ ಕ್ಯಾಮುಂಡಾವನ್ನು ಚಾಲನೆ ಮಾಡುವುದು ಒಂದು ಅನಾನುಕೂಲತೆಯನ್ನು ಹೊಂದಿದೆ: ನೀವು ಯಾವಾಗಲೂ ಇತ್ತೀಚಿನ ಪರಿಹಾರಗಳನ್ನು ಒಳಗೊಂಡಿರದ ಟಾಮ್‌ಕ್ಯಾಟ್‌ನ ಆವೃತ್ತಿಯೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳುವಿರಿ. ಇದರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು, ಈ ಉದಾಹರಣೆಯಲ್ಲಿ ತೋರಿಸಿರುವಂತೆ ನೀವು ಬಯಸಿದ ಟಾಮ್‌ಕ್ಯಾಟ್ ವಿತರಣೆಯ ಆಧಾರದ ಮೇಲೆ ನಿಮ್ಮ ಸ್ವಂತ ಡಾಕರ್ ಚಿತ್ರವನ್ನು ರಚಿಸಬಹುದು ಅಥವಾ ಕೆಳಗೆ ವಿವರಿಸಿದ ಪರಿಹಾರಗಳಲ್ಲಿ ಒಂದನ್ನು ಬಳಸಬಹುದು.

ಪ್ರಕ್ರಿಯೆ ಮಾದರಿ ನಿಯೋಜನೆ

ಕ್ಲಾಸಿಕ್ ಟ್ರಿಪ್ ಬುಕಿಂಗ್‌ಗಾಗಿ ಸಾಗಾ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಬಳಸುವ ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ, ಅಲ್ಲಿ ನೀವು ಸತತವಾಗಿ ಮೂರು ಕ್ರಿಯೆಗಳನ್ನು ಪ್ರಚೋದಿಸಲು ಮತ್ತು ನಂತರದ ವೈಫಲ್ಯದ ಸಂದರ್ಭದಲ್ಲಿ ಯಶಸ್ವಿಯಾಗಿ ಪೂರ್ಣಗೊಳಿಸಿದ ಕ್ರಿಯೆಗಳಿಗೆ ಆಕರ್ಷಕವಾಗಿ ಸರಿದೂಗಿಸಲು ಬಯಸುತ್ತೀರಿ. BPMN ರೂಪದಲ್ಲಿ ಪ್ರತಿನಿಧಿಸಲಾಗಿದೆ, ಇದು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

REST ಮತ್ತು ವರ್ಕ್‌ಫ್ಲೋ ಎಂಜಿನ್ (ಜಾವಾ ಇಲ್ಲ) ಆಧರಿಸಿ ಸುಲಭವಾದ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್‌ಗಾಗಿ ಕ್ಯಾಮುಂಡಾವನ್ನು ಬಳಸುವುದು

ಈಗ ನೀವು ಬಳಸಬಹುದು ಪ್ರಕ್ರಿಯೆ ಮಾದರಿ ನಿಯೋಜನೆಗಾಗಿ REST API. ನೀವು ಇದನ್ನು trip.bpmn ಎಂದು ಉಳಿಸಿ ಮತ್ತು ಡಾಕರ್ ಮೂಲಕ Camunda ರನ್ ಮಾಡಿ ಎಂದು ಹೇಳೋಣ ಆದ್ದರಿಂದ ಇದು ಲೋಕಲ್ ಹೋಸ್ಟ್:8080 ನಲ್ಲಿ ಲಭ್ಯವಿದೆ:

  curl -w "n" 
-H "Accept: application/json" 
-F "deployment-name=trip" 
-F "enable-duplicate-filtering=true" 
-F "deploy-changed-only=true" 
-F "[email protected]" 
http://localhost:8080/engine-rest/deployment/creat

ಈಗ ನೀವು ಓಡಬಹುದು ಹೊಸ ಕೆಲಸದ ಹರಿವಿನ ನಿದರ್ಶನಗಳು REST API ಅನ್ನು ಬಳಸಿಕೊಂಡು ಮತ್ತು ನೀವು ವರ್ಕ್‌ಫ್ಲೋ ನಿದರ್ಶನ ವೇರಿಯಬಲ್‌ಗಳಾಗಿ ನೋಡಲು ಬಯಸುವ ಡೇಟಾವನ್ನು ರವಾನಿಸಿ:

  curl 
-H "Content-Type: application/json" 
-X POST 
-d '{"variables":{"someData" : {"value" : "someValue", "type": "String"}},"businessKey" : "12345"}}' 
http://localhost:8080/engine-rest/<!-- -->process-definition/key/<!-- -->FlowingTripBookingSaga<!-- -->/start

ಮುಂದಿನ ಆಸಕ್ತಿದಾಯಕ ಪ್ರಶ್ನೆಯೆಂದರೆ: ಕಾಮುಂಡಾ ಕಾರನ್ನು ಬುಕ್ ಮಾಡುವಂತಹ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಹೇಗೆ ಕರೆಯುತ್ತದೆ? Camunda ಕೆಲವು ಅಂತರ್ನಿರ್ಮಿತವನ್ನು ಬಳಸಿಕೊಂಡು ತಕ್ಷಣವೇ ಸೇವೆಗಳಿಗೆ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ (ಪುಶ್-ಪ್ರಿನ್ಸಿಪಲ್). ಕನೆಕ್ಟರ್ಸ್, ಆದರೆ ಕೆಲಸದ ವಸ್ತುಗಳನ್ನು ಒಂದು ರೀತಿಯ ಅಂತರ್ನಿರ್ಮಿತ ಕ್ರಮದಲ್ಲಿ ಇರಿಸಿ. ಕೆಲಸಗಾರನು ನಂತರ REST ಮೂಲಕ ಕೆಲಸದ ವಸ್ತುಗಳನ್ನು ತರಬಹುದು, ಕೆಲಸವನ್ನು ನಿರ್ವಹಿಸಬಹುದು ಮತ್ತು ಕ್ಯಾಮುಂಡಾವನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಹೇಳಬಹುದು (ಪುಲ್-ಪ್ರಿನ್ಸಿಪಲ್).

REST ಮತ್ತು ವರ್ಕ್‌ಫ್ಲೋ ಎಂಜಿನ್ (ಜಾವಾ ಇಲ್ಲ) ಆಧರಿಸಿ ಸುಲಭವಾದ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್‌ಗಾಗಿ ಕ್ಯಾಮುಂಡಾವನ್ನು ಬಳಸುವುದು

ಆದ್ದರಿಂದ ಮೊದಲು ನೀವು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕಾಗಿದೆ fetchAndLock (ಏಕೆಂದರೆ ಸಿಸ್ಟಮ್ ಅನ್ನು ಅಳೆಯಲು ಇತರ ಕೆಲಸಗಾರರು ಅದೇ ಸಮಯದಲ್ಲಿ ಕಾರ್ಯಗಳನ್ನು ಪಡೆಯಬಹುದು):

  curl 
-H "Content-Type: application/json" 
-X POST 
-d <!-- -->'{"workerId":"worker123","maxTasks":1,"usePriority":true,"topics":[{"topicName": "reserve-car"}, "lockDuration": 10000, "variables": ["someData"]}]}'<!-- --> 
http://localhost:8080/engine-rest/external-task/fetchAndLock

ಆಮೇಲೆ ಕಾಮುಂಡಗೆ ಹೇಳು ಕೆಲಸಗಾರ ಕೆಲಸವನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ (ಮೊದಲ ವಿನಂತಿಯಲ್ಲಿ ಸ್ವೀಕರಿಸಿದ ಬಾಹ್ಯ ಕಾರ್ಯ ಐಡಿಯನ್ನು ನೀವು ನಮೂದಿಸಬೇಕು ಎಂಬುದನ್ನು ಗಮನಿಸಿ):

  curl 
-H "Content-Type: application/json" 
-X POST 
-d <!-- -->'{"workerId":"worker123", "variables": {}}'<!-- --> 
http://localhost:8080/engine-rest/<!-- -->external-task/EXTERNAL_TASK_ID/complete

ಅಷ್ಟೆ - ನಿಮಗೆ ಇನ್ನೂ ಯಾವುದೇ ಜಾವಾ ಅಗತ್ಯವಿಲ್ಲ, ಸರಿ? ಮತ್ತು ಪ್ರಾರಂಭಿಸಲು ಇದು ಸಾಕು!

ಗ್ರಾಹಕ ಗ್ರಂಥಾಲಯಗಳು

ಯಾವುದೇ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ REST API ಗೆ ಕರೆ ಮಾಡುವುದು ಸುಲಭ. JavaScript ನಲ್ಲಿ, ಇದನ್ನು JQuery ಬಳಸಿ ಮತ್ತು C# ನಲ್ಲಿ System.Net.Http ಮತ್ತು Newtonsoft.Json ಬಳಸಿ ಅನುಕೂಲಕರವಾಗಿ ಮಾಡಲಾಗುತ್ತದೆ. ಆದರೆ ಇದು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಆದ್ದರಿಂದ ನೀವು ಕೆಲವು ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಬಹುದು.

ಈ ಸಮಯದಲ್ಲಿ, ಹಲವಾರು ರೆಡಿಮೇಡ್ ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿಗಳು ಲಭ್ಯವಿದೆ:

  • ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್: ಲಿಂಕ್. ಕ್ಯಾಮುಂಡಾದಿಂದ ಬೆಂಬಲಿತವಾಗಿದೆ;
  • ಜಾವಾ: ಲಿಂಕ್. ಕ್ಯಾಮುಂಡಾದಿಂದ ಬೆಂಬಲಿತವಾಗಿದೆ;
  • ಸಿ #:ಲಿಂಕ್ и ಲಿಂಕ್. ಈ ಎರಡೂ ಯೋಜನೆಗಳು ಮಧ್ಯಂತರ ಸ್ಥಿತಿಯಲ್ಲಿವೆ ಮತ್ತು ಪ್ರಾಯೋಗಿಕವಾಗಿ ನಿಷ್ಕ್ರಿಯವಾಗಿವೆ, ಆದರೆ ಉತ್ತಮ ಆರಂಭಿಕ ಹಂತವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದು;
  • ಪಿಎಚ್ಪಿ: ಲಿಂಕ್ - ತುಂಬಾ ಪೂರ್ಣಗೊಂಡಿಲ್ಲ ಮತ್ತು ಇತ್ತೀಚಿನ API ಬದಲಾವಣೆಗಳನ್ನು ಒಳಗೊಂಡಿಲ್ಲ, ಆದರೆ ಅದನ್ನು ಬಳಸುವ ಯೋಜನೆಗಳು ನನಗೆ ತಿಳಿದಿದೆ.

ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಜಾವಾ ಹೊರತುಪಡಿಸಿ, ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿಗಳು ಕ್ಯಾಮುಂಡಾ ಉತ್ಪನ್ನದ ಭಾಗವಾಗಿರುವುದಿಲ್ಲ. ಅವರು ಕ್ಯಾಮುಂಡಾದ ಎಲ್ಲಾ REST API ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತಾರೆ ಎಂದು ನಿರೀಕ್ಷಿಸಬೇಡಿ. ಲೈಬ್ರರಿಯು ನಿರ್ದಿಷ್ಟ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಒದಗಿಸದ ಕಾರಣ ಅದು ಇಲ್ಲ ಎಂದು ಅರ್ಥವಲ್ಲ, ಯಾವಾಗಲೂ Camunda ನ REST API ಅನ್ನು ಪರಿಶೀಲಿಸಿ. ಉಲ್ಲೇಖ ಯೋಜನೆಗಳು ಲೈಬ್ರರಿಗಳನ್ನು ಆರಂಭಿಕ ಹಂತವಾಗಿ ಮತ್ತು ಟೆಂಪ್ಲೇಟ್ ಆಗಿ ಬಳಸುತ್ತವೆ.

ಸಿ # ಉದಾಹರಣೆ

ಮೇಲಿನ ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಿ, ನಾವು ಸರಳವಾಗಿ ಬರೆಯಬಹುದು:

  var camunda = new CamundaEngineClient("http://localhost:8080/engine-rest/engine/default/", null, null);
  // Deploy the BPMN XML file from the resources
  camunda.RepositoryService.Deploy("trip-booking", new List<object> {
        FileParameter.FromManifestResource(Assembly.GetExecutingAssembly(), "FlowingTripBookingSaga.Models.FlowingTripBookingSaga.bpmn")
     });
  
  // Register workers
  registerWorker("reserve-car", externalTask => {
    // here you can do the real thing! Like a sysout :-)
    Console.WriteLine("Reserving car now...");
    camunda.ExternalTaskService.Complete(workerId, externalTask.Id);
  });
  registerWorker("cancel-car", externalTask => {
    Console.WriteLine("Cancelling car now...");
    camunda.ExternalTaskService.Complete(workerId, externalTask.Id);
  });
  registerWorker("book-hotel", externalTask => {
    Console.WriteLine("Reserving hotel now...");
    camunda.ExternalTaskService.Complete(workerId, externalTask.Id);
  });
  // Register more workers...
  
  StartPolling();
  
  string processInstanceId = camunda.BpmnWorkflowService.StartProcessInstance("FlowingTripBookingSaga", new Dictionary<string, object>()
    {
      {"someBookingData", "..." }
    });

ಸಂಪೂರ್ಣವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ಕಾಣಬಹುದು: ಲಿಂಕ್. ಇನ್ನೊಂದು ಉದಾಹರಣೆಯಲ್ಲಿ ಲಭ್ಯವಿದೆ ಲಿಂಕ್.

Node.js ನೊಂದಿಗೆ ಉದಾಹರಣೆ

  var Workers = require('camunda-worker-node');
  var workers = Workers('http://localhost:8080/engine-rest', {
    workerId: 'some-worker-id'
  });
  
  workers.registerWorker('reserve-car', [ 'someData' ], function(context, callback) {
    var someNewData = context.variables.someData + " - added something";
    callback(null, {
      variables: {
        someNewData: someNewData
      }
    });
  });
  
  workers.shutdown();

ಹೆಚ್ಚಿನ ಮಾಹಿತಿಯನ್ನು ವೆಬ್‌ಸೈಟ್‌ನಲ್ಲಿ ಕಾಣಬಹುದು Github.com

ಕ್ಯಾಮುಂಡಾವನ್ನು ಪ್ರಾರಂಭಿಸಲು ಪರ್ಯಾಯ ಮಾರ್ಗಗಳು

"ಕ್ಯಾಮುಂಡಾ ಸ್ವತಂತ್ರ ಯುದ್ಧ" ದೊಂದಿಗೆ ಕಸ್ಟಮ್ ಡಾಕರ್ ಚಿತ್ರ

ಕ್ಯಾಮುಂಡಾದಿಂದ ಪೂರ್ವ-ನಿರ್ಮಿತ ಡಾಕರ್ ಇಮೇಜ್‌ಗೆ ಪರ್ಯಾಯವಾಗಿ, ನೀವು ಟಾಮ್‌ಕ್ಯಾಟ್ ಅನ್ನು ನೀವೇ ತಯಾರಿಸಬಹುದು (ಉದಾಹರಣೆಗೆ, ಅಧಿಕೃತ ಡಾಕರ್ ಟಾಮ್‌ಕ್ಯಾಟ್ ಚಿತ್ರಗಳನ್ನು ಆಧರಿಸಿ) ಮತ್ತು ನಂತರ ಕ್ಯಾಮುಂಡಾವನ್ನು ವಾರ್ ಫೈಲ್‌ಗಳಲ್ಲಿ ಒಂದಾಗಿ ನಕಲಿಸಬಹುದು.

REST ಮತ್ತು ವರ್ಕ್‌ಫ್ಲೋ ಎಂಜಿನ್ (ಜಾವಾ ಇಲ್ಲ) ಆಧರಿಸಿ ಸುಲಭವಾದ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್‌ಗಾಗಿ ಕ್ಯಾಮುಂಡಾವನ್ನು ಬಳಸುವುದು

ನೀವು ಅನೇಕ ಹೆಚ್ಚುವರಿ ಅವಶ್ಯಕತೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ ಮತ್ತು ಜಾವಾ ನಿರ್ಮಾಣ ಪರಿಸರವನ್ನು ಹೊಂದಿಸಬಹುದಾದರೆ, ನೀವು ಕ್ಯಾಮುಂಡಾ ಸ್ವತಂತ್ರ ಯುದ್ಧವನ್ನು ಸಹ ಹೊಂದಿಸಬಹುದು. ಈ ಉದಾಹರಣೆಗಳಲ್ಲಿರುವಂತೆ ಮಾವೆನ್ ಬಿಲ್ಡ್ ಅನ್ನು ಹೊಂದಿಸಿ: ನಿರ್ಮಿಸಿ ಯುದ್ಧ ಸಂರಚನೆಯೊಂದಿಗೆ ಮಾವೆನ್ ಅಥವಾ ಜೋಡಣೆ ಮೇಲ್ಪದರದೊಂದಿಗೆ ಮಾವೆನ್.

ಕ್ಯಾಮುಂಡಾ ಟಾಮ್‌ಕ್ಯಾಟ್ ವಿತರಣೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ

ಕ್ಯಾಮುಂಡಾ ಟಾಮ್‌ಕ್ಯಾಟ್ ವಿತರಣೆಯನ್ನು ಸರಳವಾಗಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡುವುದು ಮತ್ತೊಂದು ಆಯ್ಕೆಯಾಗಿದೆ, ಅದನ್ನು ಅನ್ಜಿಪ್ ಮಾಡಿ ಮತ್ತು ಅದನ್ನು ಚಲಾಯಿಸಿ. ಇದಕ್ಕೆ ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾದ Java Runtime Environment (JRE) ಮಾತ್ರ ಅಗತ್ಯವಿದೆ. ಇದು ಸುಲಭವಾಗಿ ಆಗಬಹುದು ಇಲ್ಲಿಂದ ಡೌನ್ಲೋಡ್ ಮಾಡಿ.

REST ಮತ್ತು ವರ್ಕ್‌ಫ್ಲೋ ಎಂಜಿನ್ (ಜಾವಾ ಇಲ್ಲ) ಆಧರಿಸಿ ಸುಲಭವಾದ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್‌ಗಾಗಿ ಕ್ಯಾಮುಂಡಾವನ್ನು ಬಳಸುವುದು

ಡೇಟಾಬೇಸ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಅಥವಾ ಬೇರೆ ಯಾವುದನ್ನಾದರೂ ಮಾಡಲು ನೀವು ಟಾಮ್‌ಕ್ಯಾಟ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ ದಸ್ತಾವೇಜನ್ನು ವಿವರಿಸಲಾಗಿದೆ. ಟಾಮ್‌ಕ್ಯಾಟ್ ಜಟಿಲವಾಗಿದೆ ಎಂದು ನನಗೆ ತಿಳಿದಿದೆ, ಆದರೆ ಇದು ನಿಜವಾಗಿಯೂ ತುಂಬಾ ಸರಳವಾಗಿದೆ. ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಅಗತ್ಯವಿರುವ ಎಲ್ಲದಕ್ಕೂ ಉತ್ತರಗಳನ್ನು Google ತಿಳಿದಿದೆ.

ಟಾಮ್‌ಕ್ಯಾಟ್ ಬಳಸಿ ಕ್ಯಾಮುಂಡಾವನ್ನು ನಡೆಸುವುದು

ಕೊನೆಯ ಪರ್ಯಾಯವೆಂದರೆ ಟಾಮ್‌ಕ್ಯಾಟ್ ಅನ್ನು ನೀವೇ ಹೊಂದಿಸುವುದು ಮತ್ತು ಅದರಲ್ಲಿ ಕ್ಯಾಮುಂಡಾವನ್ನು ಸ್ಥಾಪಿಸುವುದು, ಅನುಸ್ಥಾಪನೆಯ ವಿವರಣೆಯನ್ನು ಅನುಸರಿಸಿ. ನೀವು ಆದ್ಯತೆ ನೀಡುವ ಟಾಮ್‌ಕ್ಯಾಟ್‌ನ ಯಾವುದೇ ಆವೃತ್ತಿಯನ್ನು ಬಳಸಲು ಇದು ನಿಮಗೆ ಆಯ್ಕೆಯನ್ನು ನೀಡುತ್ತದೆ, ಅಥವಾ ಅದನ್ನು ವಿಂಡೋಸ್ ಸೇವೆಯಾಗಿ ಸ್ಥಾಪಿಸಿ, ಉದಾಹರಣೆಗೆ.

ಕ್ಯಾಮುಂಡಾವನ್ನು ಉತ್ಪಾದನೆಗೆ ಪ್ರಾರಂಭಿಸುವುದು

ಇದು ಸಾಮಾನ್ಯವಾಗಿ Camunda ರನ್ ಮಾಡಲು ಕೆಲವು ಅಂತಿಮ ಸೆಟಪ್ ಅಗತ್ಯವಿರುತ್ತದೆ. ಕ್ಯಾಮುಂಡಾದಲ್ಲಿ ಇದನ್ನು ಬಹಳ ವಿವರವಾಗಿ ವಿವರಿಸುವ ಮಾರ್ಗಸೂಚಿಗಳಿವೆ, ಆದರೆ ನಾನು ಈ ಲೇಖನದಲ್ಲಿ ಅವುಗಳನ್ನು ಹೋಗುವುದಿಲ್ಲ - ನಾನು ಕೇವಲ ಒಂದು ಉದಾಹರಣೆಯನ್ನು ಹೆಸರಿಸುತ್ತೇನೆ: ವಿತರಣೆಯ REST API ಅನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ದೃಢೀಕರಣಕ್ಕಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿಲ್ಲ. ನೀವು ಇದನ್ನು ಬದಲಾಯಿಸಲು ಬಯಸಬಹುದು.

ಸಂಕ್ಷಿಪ್ತವಾಗಿ

ನೀವು ನೋಡುವಂತೆ, ನೀವು ಬಳಸುತ್ತಿರುವ ಭಾಷೆಯನ್ನು ಲೆಕ್ಕಿಸದೆ Camunda ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುವುದು ತುಂಬಾ ಸುಲಭ. ಪ್ರಮುಖ ಅಂಶವೆಂದರೆ ಎಲ್ಲಾ ಸಂವಹನಗಳನ್ನು REST API ಮೂಲಕ ಮಾಡಲಾಗುತ್ತದೆ. ಅನುಸ್ಥಾಪನೆಯು ತುಂಬಾ ಸುಲಭ, ವಿಶೇಷವಾಗಿ ಡಾಕರ್ ಬಳಸುವಾಗ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ