Synchronous and asynchronous, as the basis for further mastering high-performance and high-concurrency technologies, are very critical, so I think it is necessary to help you sort out the meaning behind the two words.
Let's start with a work scenario that programmers are all too familiar with.
On the first day, the boss gave you a task~
Suppose now that the boss assigns you a very urgent and very important task, which you must complete before leaving get off work (evil capitalism). In order to supervise the progress, the boss moved a chair and sat on the side watching you write code.
You must have cursed in your heart, "WTF, are you so free? Wait for me? Can't you go do something else?"
The boss seems to have received your brainwaves: "I'll just wait here, I won't go anywhere, and I won't go to the toilet until you finish writing."
In this example, after the boss gives you the task , he waits all the time and does nothing until you finish writing . This scenario is called synchronization.
The next day, the boss gave you another task.
But this time I am not so anxious, this time the boss said lightly, "It's okay, young man, you can work hard for another year, and next year I will be financially free. Don't worry about today's task. Just let me know after you finish writing it." ".
This time the boss didn't stare at you writing the code, but turned around and watched the video. After you finished writing, simply report to the boss "I'm done writing".
In this example, the boss no longer waits to do nothing after explaining the task, but goes to other things. After you complete the task, you simply tell the boss that the task is completed. This is the so-called asynchronous.
We can see that the word synchronization is often related to keywords such as "dependence", "association", and "waiting" of tasks, while asynchrony is often related to tasks such as "not dependent", "unrelated", "no need to wait", and "simultaneously". Occurrence" and other keywords are related. Therefore, from the perspective of system performance, such a design can make full use of system resources and process requests more quickly; from the perspective of users, the system will respond more quickly. This is the efficiency of asynchrony.
In this issue, the product is updated, the generated source code is optimized and changed to asynchronous download and other functions, let’s take a look together!
1. Optimize the generated source code and change it to asynchronous download
Basic overview: Optimize the asynchronous download of the generated source code. After clicking Generate Source Code Package, the source code package will be generated asynchronously, and then you can view the generation status in the source code record. After the generation is successful, you can directly download the source code package; if the generation fails, you can view the reason for the generation failure.
Operation example:
Step 1: Click the "Settings button > Generate source code" on the project card.
Step 2: In the second prompt box, select "Whether to carry the JAR package", and then click "OK".
Step 3: "Settings button > Source code record" on the single project card.
Step 4: You can view the generation status in the source code record list, and you can choose to download the source code package after the generation is complete.
Note: When the generation fails, you can click "Details" in the operation bar to view the reason for the failure.
2. Optimize process execution trajectory variable display
Basic overview: Display the detailed information of the optimization process execution track. Not only can you view the detailed information of the current component, but you can also view the information of other components in the same process; at the same time, the system variable information is classified into entry parameters, local variables, configuration group parameters, and Basic parameters, etc., make the process track information clearer, and facilitate users to quickly view the execution results of components and the values of variables.
Operation example:
Step 1: On the interface management page, select an interface and click "Menu > Test Case".
Step 2: On the test case page, select a test case and click Execute.
Step 3: In the details of the executed test case, click "Process Execution Track".
Step 4: In the process track, double-click "any component".
Step 5: Check the current component, other components, system variables and other information.
3. Optimize and modify the SQL has been used to give a hint
Basic overview: When the SQL information is referenced by the interface, a prompt will pop up after saving the modified SQL information, and the SQL information needs to be re-selected in the interface to take effect. When the SQL information is deleted, the interface that has been referenced will be displayed. It can only be deleted after the reference is removed.
Operation example:
Step 1: On the interface management page, create a new interface that references SQL.
Step 2: Click "SQL Management".
Step 3: Select the SQL referenced by the interface, and click Edit.
Step 4: Click "Save" after modifying the SQL information, and a prompt pops up that the SQL is quoted and asks whether to save the modification.
Step 5: Click Delete, and a prompt will pop up indicating that SQL is referenced and cannot be deleted.
4. Optimize the system function jar package and define it as an extended jar package
Basic overview: In order to optimize the size of the execution engine package, the platform defines some system functions as jar packages of system functions. When these functions need to be used, the system functions can only be used after the extended jar package in the add-on loads the system function jar package , the following system function
"SysFun_Feidai_Base64Utils【Base64Utils】" as an example.
Operation example:
Step 1: Select an item, click "Settings button > Add-ons".
Step 2: On the project add-ons page, click "Extended jar package" and select the system function dependency package
"flow-bcprov【groupId:com.feisuanyz.flow.extend】" and click "Load Application".
Step 3: Enter the project, select an interface in the interface management, and click "Enter flowchart editing".
Step 4: On the flowchart editing page, drag a "single function" component and an "output result component" to the right canvas and connect the flowchart.
Step 5: Select the "Single Function" component, and click "Enter Single Function Information" on the right.
Step 6: At this time, in the function list, you can select the system function that has loaded the function dependent jar package, and click "OK" after the selection is completed.
Step 7: After configuring the output result component information, click the "Save and Exit" flowchart.
5. The dependent JAR of the optimization operation and maintenance API is not imported by default, only when it is enabled
Basic overview: The platform provides an extended jar package for monitoring and detection. When the local client and execution engine use the indicator monitoring interface, you need to download the specified extended jar package and then execute the indicator monitoring interface to monitor the data.
Operation example:
Step 1: Enter the (backend) fully automatic development platform, click the "Download button > Extended jar package" in the upper right corner.
Step 2: In the historical version list of the extended jar package, click "Download" to monitor and detect the extended jar package.
Step 3: Decompress the downloaded monitoring and detection extension jar package and put it into the extjar folder of the local client of the backend platform or the execution engine.
Note: For details on downloading and using the local client, see the "(Backend) Fully Automatic Development Platform/Commercial Client" section of the document.
Step 4: Create an application.yml file and place it in the same directory as the feisuanyz-local-engine.jar file and configure the following information to control whether all projects in the execution engine report monitoring information.
metrics-report:
enable: true
Step 5: Click "startup" to start the local client.
Step 6: In the local client project, create a new interface that enables indicator monitoring and reporting.
Note: For details on how to create an indicator monitoring and reporting interface, see the document "(Backend) Fully Automatic Development Platform / Operation Guide / 13 Interface Management / 3 Integrated Monitoring Interface / ".
Step 7: After executing the interface, enter the address of monitoring and reporting data to view the data collected by monitoring.
6. Optimize the timing task jar package and define it as an extended jar package
Basic overview: The execution engine package downloaded on the platform no longer contains the jar package of the scheduled task. The jar package of the scheduled task has been classified into the extended jar package. When adding a scheduled task, the system will automatically load the jar package of the scheduled task. Users can also manually add in advance in the add-on, and the jar package of the scheduled task will follow in the project deployment package.
Operation example:
Step 1: Enter the project, click "Scheduled Task", select the scheduled task module, and click "+ > New Scheduled Task".
Step 2: On the new scheduled task page, fill in the scheduled task information, and click "Submit" after completion.
Note: For details on timing task operations, see the document "(Backend) Fully Automatic Development Platform / Operation Guide / 19 Timing Tasks".
Step 3: Return to the project management page, click the project "Settings button > Add-ons".
Step 4: On the project add-ons page, click "Extended jar package". At this time, you can see that after adding a scheduled task, the system automatically loads the scheduled task extension package " flow-job [groupId:com.feisuanyz.flow.extend 】".
Note: When the scheduled task record exists, the loaded scheduled task extension jar package cannot be canceled.
That's all for this update.
Interested friends can apply for a free trial~
Application link: http://feisuanyz.mikecrm.com/9dW4GeZ
Graduates of the National People’s University stole the information of all students in the school to build a beauty scoring website, and have been criminally detained. The new Windows version of QQ based on the NT architecture is officially released. The United States will restrict China’s use of Amazon, Microsoft and other cloud services that provide training AI models . Open source projects announced to stop function development LeaferJS , the highest-paid technical position in 2023, released: Visual Studio Code 1.80, an open source and powerful 2D graphics library , supports terminal image functions . The number of Threads registrations has exceeded 30 million. "Change" deepin adopts Asahi Linux to adapt to Apple M1 database ranking in July: Oracle surges, opening up the score again