Method for processing scheduling information, task processing system, processor and electronic device
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INDUSTRIAL AND COMMERCIAL BANK OF CHINA
- Filing Date
- 2022-06-16
- Publication Date
- 2026-06-26
Smart Images

Figure CN115220887B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of financial technology, and more specifically, to a method for processing scheduling information, a task processing system, a processor, and an electronic device. Background Technology
[0002] In the fintech sector, data is growing explosively, and the data processing system is vast. Since it is based on multiple data storage platforms, it is difficult to achieve data sharing and unified scheduling across different platforms. Therefore, financial institutions need a unified scheduling method based on various data storage plains and resource isolation.
[0003] In related technologies, batch scheduling methods are based on actively acquiring or passively pushing scheduling information to each application (terminal). After the scheduling system processes the scheduling information, it feeds back the results to the respective applications (terminals), and each application processes the pending jobs. This method reduces the workload of the scheduling system to a certain extent, but it increases the difficulty of interaction between applications and reduces efficiency.
[0004] There is currently no effective solution to the problem of low processing efficiency of scheduling information in related technologies. Summary of the Invention
[0005] The main objective of this application is to provide a method for processing scheduling information, a task processing system, a processor, and an electronic device to solve the problem of low processing efficiency of scheduling information in related technologies.
[0006] To achieve the above objectives, according to one aspect of this application, a method for processing scheduling information is provided. The method includes: determining the target application corresponding to the job to be processed, and obtaining the scheduling information of the target application from a target database, wherein the target database is used to store scheduling information of multiple applications, and the scheduling information is data call information of the application when executing the job; determining the job information of the job to be processed, and judging whether the job to be processed meets the running conditions based on the job information and the scheduling information; if the job to be processed meets the running conditions, storing the job to be processed in a queue; and if the execution of the job to be processed in the queue is detected, obtaining the execution result, and updating the scheduling information in the target database based on the execution result.
[0007] Optionally, determining whether a pending job meets the running conditions based on job information and scheduling information includes: determining whether the pending job needs to call the processing results of other jobs before running, wherein a job is a different job from the pending job; if the pending job does not need to call the processing results of other jobs before running, determining whether there are other jobs that need to call the data to be called corresponding to the pending job, and if there are other jobs that need to call the data to be called, determining whether the pending job is the highest priority job; if the target application is the highest priority application, determining that the pending job meets the running conditions.
[0008] Optionally, before determining whether the pending job needs to call the processing results of other jobs before running, the method further includes: determining whether the free running resources of the target application are greater than or equal to the running resources required to execute the pending job; if the free running resources are greater than or equal to the running resources required to execute the pending job, determining the total number of pending jobs and tasks currently being executed by the target application, and determining whether the total number is greater than a preset number, wherein the preset number is the number of concurrent processing jobs of the target application; if the total number is less than or equal to the preset number, performing the step of determining whether the pending job needs to call the processing results of other jobs before running.
[0009] Optionally, before obtaining the scheduling information of the target application from the target database, the method further includes: obtaining application information of multiple applications, wherein the application information includes at least one of the following: configuration information or running script; parsing the application information of multiple applications to obtain multiple initial scheduling information; converting the multiple initial scheduling information into information in a preset format to obtain multiple scheduling information, and storing the multiple scheduling information in the target database.
[0010] Optionally, updating the scheduling information in the target database based on the execution result includes: generating target call information based on the execution result and determining the object to which the execution result belongs; if the object to which the execution result belongs is the target application, determining the target call information as the scheduling information of the target application; if the object to which the execution result belongs is the first application, determining the target call information as the scheduling information of the first application, wherein the first application is an application other than the target application; if the object to which the execution result belongs includes both the target application and the first application, determining the target call information as the scheduling information of the target application and the scheduling information of the first application, respectively.
[0011] Optionally, after storing the job to be processed in the queue, the method further includes: during the execution of the job to be processed, if there is interaction between the target application and the first application, a data synchronization job is generated, wherein the first application is an application other than the target application, and the data synchronization job is used to realize data interaction between the target application and the first application.
[0012] Optionally, after determining whether the job to be processed meets the running conditions based on the job information and scheduling information, the method further includes: re-determining the job information of the job to be processed every preset time interval, and re-obtaining the scheduling information of the target application from the target database, and determining whether the job to be processed meets the running conditions based on the re-obtained job information and scheduling information, until the number of determinations reaches a preset number, or until the job to be processed meets the running conditions.
[0013] Alternatively, the queue can be hosted on a file server or a database.
[0014] To achieve the above objectives, according to another aspect of this application, a task processing system is provided, characterized in that it includes: a target database for storing scheduling information of multiple applications, wherein the scheduling information is data call information of the applications when executing jobs; a scheduling information processing unit, communicatively connected to the target database, for obtaining scheduling information of tasks to be processed from the target database, determining whether the tasks to be processed meet the running conditions based on the scheduling information and the job information of the tasks to be processed, and storing the tasks to be processed in a queue if the tasks meet the running conditions; and a job execution unit for obtaining the tasks to be processed from the queue, executing the tasks to be processed, and obtaining execution results.
[0015] To achieve the above objectives, according to another aspect of this application, a scheduling information processing apparatus is provided. The apparatus includes: a first determining unit, configured to determine the target application corresponding to the job to be processed, and obtain scheduling information of the target application from a target database, wherein the target database stores scheduling information of multiple applications, and the scheduling information is data call information of the application when executing the job; a second determining unit, configured to determine the job information of the job to be processed, and determine whether the job to be processed meets the running conditions based on the job information and the scheduling information; a storage unit, configured to store the job to be processed in a queue if the job to be processed meets the running conditions; and a detection unit, configured to obtain the execution result when the job to be processed in the queue is detected to be executed, and update the scheduling information in the target database based on the execution result.
[0016] This application employs the following steps: determining the target application corresponding to the job to be processed, and obtaining the scheduling information of the target application from a target database, wherein the target database stores scheduling information for multiple applications, and the scheduling information is the data call information of the application when executing the job; determining the job information of the job to be processed, and judging whether the job to be processed meets the running conditions based on the job information and the scheduling information; if the job to be processed meets the running conditions, storing the job to be processed in a queue; if the execution of the job to be processed in the queue is detected, obtaining the execution result, and updating the scheduling information in the target database based on the execution result, thus solving the problem of low processing efficiency of scheduling information in related technologies. By separating the processing of scheduling information from job execution, the processing efficiency of scheduling information is improved. Attached Figure Description
[0017] The accompanying drawings, which form part of this application, are used to provide a further understanding of this application. The illustrative embodiments and descriptions of this application are used to explain this application and do not constitute an undue limitation of this application. In the drawings:
[0018] Figure 1 This is a flowchart of a method for processing scheduling information according to an embodiment of this application;
[0019] Figure 2 This is a schematic diagram of a task processing system provided according to an embodiment of this application;
[0020] Figure 3 This is a schematic diagram of the structure of the scheduling information processing unit provided in the embodiments of this application;
[0021] Figure 4 This is a schematic diagram of the structure of the job execution unit provided in the embodiments of this application;
[0022] Figure 5 This is a flowchart of another method for processing scheduling information according to an embodiment of this application;
[0023] Figure 6 This is a schematic diagram of a scheduling information processing device according to an embodiment of this application;
[0024] Figure 7 This is a schematic diagram of an electronic device provided according to an embodiment of this application. Detailed Implementation
[0025] It should be noted that, unless otherwise specified, the embodiments and features described in this application can be combined with each other. This application will now be described in detail with reference to the accompanying drawings and embodiments.
[0026] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present application, and not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative effort should fall within the scope of protection of the present application.
[0027] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate for the embodiments of this application described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0028] It should be noted that all information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for display, data used for analysis, etc.) involved in this disclosure are information and data authorized by the user or fully authorized by all parties. For example, this system has an interface with relevant users or organizations. Before obtaining relevant information, it is necessary to send an acquisition request to the aforementioned user or organization through the interface, and obtain the relevant information after receiving consent information from the aforementioned user or organization.
[0029] The present invention will now be described in conjunction with preferred implementation steps. Figure 1 This is a flowchart of a scheduling information processing method provided according to an embodiment of this application, such as... Figure 1 As shown, the method includes the following steps:
[0030] Step S101: Determine the target application corresponding to the job to be processed, and obtain the scheduling information of the target application from the target database. The target database is used to store the scheduling information of multiple applications, and the scheduling information is the data call information of the application when executing the job.
[0031] Specifically, the pending jobs can be tasks such as configuration updates that need to be completed in the application, the target application can be an application currently in use in the bank, and the target database is the target database in the scheduling information processing system. When updating the configuration, the target application needs to obtain the scheduling information in the target database and update the configuration based on the scheduling information. The scheduling information can include dependencies, priorities, concurrency ratios, user information, etc. Dependencies mean that when scheduling information m is applied, it needs to obtain some parameters after scheduling information n is applied. Therefore, scheduling information m and scheduling information n have a dependency relationship. Priority means that scheduling information x and scheduling information y need to call the same parameter at the same time. In this case, it is necessary to compare the priorities of scheduling information x and scheduling information y. Concurrency ratio is the amount of jobs corresponding to the scheduling information that the application applying the scheduling information can process simultaneously. User information refers to the resources required by the job corresponding to the scheduling information during runtime.
[0032] Step S102: Determine the job information of the job to be processed, and determine whether the job to be processed meets the running conditions based on the job information and scheduling information.
[0033] Specifically, job information can be the status information of jobs to be processed in the target application. The status information and scheduling information are combined to determine whether the job meets the running conditions.
[0034] For example, job 'a' in application A has a dependency relationship with job 'b'. The parameters called by job 'a' need to be processed in job 'b' before they can be called. Job 'a' does not meet the running conditions if job 'b' has not processed them. Job 'a' and job 'c' in application A need to call the same parameter, but job 'c' has a higher priority than job 'a'. When job 'a' and job 'c' are judged for running conditions at the same time, job 'a' does not meet the running conditions, while job 'c' does. The concurrency ratio of application A is 1:5, that is, application A can process 5 jobs at the same time. When application A is processing 5 jobs, job 'a' does not meet the running conditions. Job 'd' in application A requires user information to run. If the user information is missing, job 'd' does not meet the running conditions. If job 'a' has already run today, its status shows that it has been processed today. Job 'a' can run once a day, but in this case, job 'a' does not meet the running conditions.
[0035] Step S103: If the pending job meets the running conditions, store the pending job in the queue.
[0036] Specifically, the queue is the queue of jobs to be run. If a job meets the conditions, it is placed in the queue to be run and waits for the job execution subsystem to process it. The queue to be run can be implemented through server files or scheduling target database data.
[0037] Step S104: If the pending job in the queue is detected to be executed, obtain the execution result and update the scheduling information in the target database according to the execution result.
[0038] Specifically, the system checks whether the pending jobs have been executed in the order they entered the queue. If a job has been executed, the system updates the scheduling information of the corresponding job in the target database based on the execution result.
[0039] The scheduling information processing method provided in this application embodiment determines the target application corresponding to the job to be processed and obtains the scheduling information of the target application from a target database. The target database stores scheduling information for multiple applications, which is the data call information of the application when executing a job. The method determines the job information of the job to be processed and judges whether the job meets the running conditions based on the job information and the scheduling information. If the job meets the running conditions, it is stored in a queue. When the execution of the job in the queue is detected, the execution result is obtained, and the scheduling information in the target database is updated based on the execution result. This solves the problem of low processing efficiency of scheduling information in related technologies. By separating the processing of scheduling information from job execution, the efficiency of scheduling information processing is improved.
[0040] After obtaining the scheduling information, it is necessary to determine whether the job meets the running conditions based on the job information and scheduling information. Optionally, in the scheduling information processing method provided in this application embodiment, determining whether the job to be processed meets the running conditions based on the job information and scheduling information includes: determining whether the job to be processed needs to call the processing results of other jobs before running, wherein the job is a different job from the job to be processed; if the job to be processed does not need to call the processing results of other jobs before running, determining whether there are other jobs that need to call the data to be called corresponding to the job to be processed, and if there are other jobs that need to call the data to be called, determining whether the job to be processed is the highest priority job; if the target application is the highest priority application, determining that the job to be processed meets the running conditions.
[0041] For example, job 'a' in application A is a pending job. Before adding job 'a' to the processing queue, it's necessary to determine whether the parameters that job 'a' needs to call during runtime come from the processing results of other pending jobs. If so, job 'a' does not meet the running conditions; if not, it proves that job 'a's execution has no dependencies. If it doesn't need to call the processing results of other pending jobs, it's also necessary to determine whether other jobs are also calling the parameter 'x' that job 'a' needs to call. If job 'b' also needs to call parameter 'x', then it's necessary to determine which job, job 'a' or job 'b', has a higher priority, and process the higher-priority pending job first. By determining whether a pending job meets the running conditions before processing, pending jobs can be processed efficiently, improving the utilization efficiency of scheduling information.
[0042] Before determining that the pending job meets the running conditions, it is also necessary to determine the job processing status of the target application. Optionally, in the scheduling information processing method provided in this application embodiment, before determining whether the pending job needs to call the processing results of other jobs before running, the method further includes: determining whether the free running resources of the target application are greater than or equal to the running resources required to execute the pending job; if the free running resources are greater than or equal to the running resources required to execute the pending job, determining the total number of tasks currently being executed by the pending job and the target application, and determining whether the total number is greater than a preset number, wherein the preset number is the number of concurrent processing jobs of the target application; if the total number is less than or equal to the preset number, performing the step of determining whether the pending job needs to call the processing results of other jobs before running.
[0043] For example, if the target application is application A, and the job to be processed is job a, and job a requires 50GB of runtime resources, while application A currently provides only 30GB of runtime resources, then job a cannot be run. Even if application A has sufficient runtime resources, it's necessary to determine if the number of jobs currently being processed by application A has reached its limit. If application A's maximum number of concurrently running jobs is 5, then job a cannot be run if application A is already running 5 jobs. By checking the job execution status of the target application, job execution conflicts can be avoided.
[0044] Before obtaining scheduling information, the target database needs to be configured in advance. Optionally, in the scheduling information processing method provided in this application embodiment, before obtaining the scheduling information of the target application from the target database, the method further includes: obtaining application information of multiple applications, wherein the application information includes at least one of the following: configuration information or running script; parsing the application information of multiple applications to obtain multiple initial scheduling information; converting the multiple initial scheduling information into information in a preset format to obtain multiple scheduling information, and storing the multiple scheduling information in the target database.
[0045] Specifically, multiple applications can be applications such as A, B, and C within a bank that require scheduling information. The methods for obtaining scheduling information differ between these applications. For example, application A might parse configuration information to obtain the necessary parameters for scheduling, while application B might parse and run scripts to obtain the required scheduling parameters. After obtaining the scheduling parameters from different applications, the target database converts these parameters into scheduling information that can be parsed by each application and stores this information in the target database. By configuring the target database before obtaining scheduling information, scheduling information can be applied efficiently, enhancing the interaction between different applications.
[0046] After the job corresponding to the scheduling information is completed, the scheduling information is updated by determining the object to which the job execution result belongs. Optionally, in the scheduling information processing method provided in this application embodiment, updating the scheduling information in the target database according to the execution result includes: generating target call information based on the execution result and determining the object to which the execution result belongs; if the object to which the execution result belongs is a target application, the target call information is determined as the scheduling information of the target application; if the object to which the execution result belongs is a first application, the target call information is determined as the scheduling information of the first application, wherein the first application is an application other than the target application; if the object to which the execution result belongs includes both the target application and the first application, the target call information is determined as the scheduling information of the target application and the scheduling information of the first application, respectively.
[0047] Specifically, the execution result can be the updated x parameter, the target call information can be the call information containing the updated x parameter, the target application can be application A, and the first application can be any application other than application A. Each application has its own scheduling information, stored in the same target database, providing assurance for the interaction between applications. Each application has a complete set of scheduling information, achieving resource isolation between applications. The scheduling information is divided into two parts: one part is the application's own scheduling information, and the other part is the scheduling information for interactions between applications. Due to application interactions, to achieve isolation, the scheduling data generated by the interaction is assigned to the scheduling information according to the final data. For example, if application A calls data from application B for batch processing, and the processing result belongs to application A, then the scheduling information for the interaction between A and B belongs to application A. If applications A and B call each other and the results belong to applications A and B respectively, then the scheduling information for the mutual calls between applications A and B is stored in each of their respective scheduling information. By determining the ownership of the scheduling information for each application, scheduling information can be processed more efficiently, avoiding confusion in the storage of scheduling information.
[0048] During the execution of a job, there may be situations where interactive data is generated. Optionally, in the method for processing scheduling information provided in this application embodiment, after storing the job to be processed in a queue, the method further includes: if there is an interactive behavior between the target application and the first application during the execution of the job to be processed, a data synchronization job is generated, wherein the first application is an application other than the target application, and the data synchronization job is used to realize data interaction between the target application and the first application.
[0049] Specifically, each application interacts with the other, generating synchronous data source synchronization jobs to facilitate interaction between application entities. For example, if application A's job needs to access data from application B, data interaction occurs. This interacted data is stored in an entity target database separate from the target database for scheduling information. By enabling data interaction between different applications, scheduling information processing can be made more efficient, reducing the number of data processing steps.
[0050] The scheduling information is periodically polled to determine whether it needs to be processed. Optionally, in the scheduling information processing method provided in this application embodiment, after determining whether the job to be processed meets the running conditions based on the job information and scheduling information, the method further includes: re-determining the job information of the job to be processed every preset time interval, and re-obtaining the scheduling information of the target application from the target database, and determining whether the job to be processed meets the running conditions based on the re-obtained job information and scheduling information, until the number of determinations reaches a preset number, or until the job to be processed meets the running conditions.
[0051] Specifically, the preset duration can be set to one day. For example, the scheduling information for job 'a' in application A needs to be processed every other day, and the preset number of times can be once. For example, job 'b' in application A can only run once a day. By setting up timed polling of scheduling information, the management of scheduling information can be automated, improving the processing efficiency of scheduling information.
[0052] Optionally, in the scheduling information processing method provided in the embodiments of this application, the carrier of the queue is a file server or a database.
[0053] Specifically, the queue of jobs to be processed can be set up on a file server or created in the target database.
[0054] Figure 2 This is a schematic diagram of a task processing system provided according to an embodiment of this application. For example... Figure 2 As shown, the system includes:
[0055] The target database 201 is used to store scheduling information for multiple applications, where the scheduling information is the data call information of the application when executing the job.
[0056] Specifically, the target database stores scheduling information for multiple applications. Before the scheduling information is invoked, the target database obtains the configuration information or running scripts of multiple applications in advance, and converts them into scheduling information that each application can recognize based on the configuration information or running scripts.
[0057] The scheduling information processing unit 202 is connected to the target database and is used to obtain the scheduling information of the task to be processed from the target database. Based on the scheduling information and the job information of the task to be processed, it determines whether the job to be processed meets the running conditions. If the job to be processed meets the running conditions, it stores the job to be processed in the queue.
[0058] Specifically, the scheduling information processing unit 202 reads the scheduling information obtained from the target database 201 and determines whether the job meets the running conditions. If it does, it is placed in the waiting queue in the job execution unit 203. If the job does not meet the running conditions, it waits for the next judgment.
[0059] The job execution unit 203 is used to retrieve jobs to be processed from the queue, execute the jobs to be processed, and obtain the execution results.
[0060] Specifically, the job execution unit 203 reads the pending queue information, runs the pending queue jobs according to resource conditions, and updates the scheduling information after the job execution is completed. It then enters a loop to wait for the next scheduled information processing module to process it.
[0061] The target database 201 stores scheduling information for multiple applications, where the scheduling information is the data call information of the applications when executing jobs. The scheduling information processing unit 202 communicates with the target database, retrieves the scheduling information of tasks to be processed from the target database, and determines whether the tasks to be processed meet the running conditions based on the scheduling information and the job information of the tasks. If the tasks meet the running conditions, the tasks to be processed are stored in a queue. The job execution unit 203 retrieves the tasks to be processed from the queue, executes the tasks, and obtains the execution results. This solves the problem of low processing efficiency of scheduling information in related technologies. By separating the processing of scheduling information from the execution of jobs, the efficiency of scheduling information utilization is improved.
[0062] Figure 3 This is a schematic diagram of the scheduling information processing unit 202 provided according to an embodiment of this application. For example... Figure 3 As shown, the unit includes:
[0063] The application interaction processing module 301 is used to parse the configuration information or running scripts of each application and configure the parsed information into the target database, so that the target database can store the scheduling information of each application. By converting the configuration information or running scripts of each application into scheduling information that each application can recognize, the logical interaction of each application is realized.
[0064] The scheduling information processing module 302 is used to determine whether a job meets the running conditions by using the configuration and status information of various jobs. When the configuration and status information of a job shows that the job has no dependencies and the job priority is the highest, it means that the job meets the running conditions. If the conditions are met, the job is placed in the queue to be run and waits for the job running system to process it.
[0065] The data synchronization module 303 is used to realize the synchronization of entity data of various applications. When there is entity data interaction between applications, a data source synchronization job is generated. When the job corresponding to the scheduling information needs to call data from other applications besides the application executing the job, the data source synchronization job is generated to store the data of other applications in the entity database. The application executing the job executes the job by obtaining the data of other applications in the entity database, thereby realizing the interaction between application entities.
[0066] The scheduling information storage module 304 is used to store scheduling information obtained from the scheduling target database and to realize the interaction of scheduling information between the application interaction processing unit 301, the scheduling information processing unit 302 and the data synchronization unit 303.
[0067] Figure 4 This is a schematic diagram of the structure of the job execution unit 203 provided according to an embodiment of this application. For example... Figure 4 As shown, the unit includes:
[0068] The pending job module 401 is used to store pending jobs sent by the scheduling information processing module 302. Each application obtains its corresponding pending job in the pending job module 401 and executes it. The pending jobs are run according to the concurrency ratio of each application. Pending jobs that have not been obtained wait for a new round of processing in the pending job module 401.
[0069] The data synchronization job module 402 is used to run the data source synchronization job sent by the data synchronization module 303. By calling the data of other applications stored in the entity database, the job to be processed is executed in the corresponding application.
[0070] Figure 5 This is a flowchart of another scheduling information processing method provided according to an embodiment of this application, applied to the task processing system in this application embodiment. For example... Figure 5 As shown, the process includes:
[0071] First, the task processing system starts running.
[0072] Secondly, the scheduling information processing unit reads the scheduling information from the target database and determines whether the job corresponding to the scheduling information meets the running conditions. If it does, it is placed in the pending queue in the job execution unit; otherwise, it waits for the next judgment.
[0073] Furthermore, the job execution unit reads the information in the pending queue and runs the jobs in the pending queue according to the resource situation.
[0074] Finally, the job finishes execution and updates the scheduling information. The scheduling information then enters a loop, waiting to be processed by the scheduling information processing unit next.
[0075] The scheduling information processing unit provided in this application embodiment can realize scheduling information interaction and data sharing among multiple applications, separate the scheduling information processing system from the job operation system, improve the load capacity of the scheduling information processing system, and improve the processing efficiency of scheduling information.
[0076] It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions, and although a logical order is shown in the flowchart, in some cases the steps shown or described may be executed in a different order than that shown here.
[0077] This application also provides a scheduling information processing apparatus. It should be noted that the scheduling information processing apparatus of this application can be used to execute the scheduling information processing method provided in this application. The scheduling information processing apparatus provided in this application will be described below.
[0078] Figure 6 This is a schematic diagram of a scheduling information processing device provided according to an embodiment of this application. Figure 6 As shown, the device includes:
[0079] The first determining unit 10 is used to determine the target application corresponding to the job to be processed and to obtain the scheduling information of the target application from the target database. The target database is used to store the scheduling information of multiple applications, and the scheduling information is the data call information of the application when executing the job.
[0080] The second determining unit 20 is used to determine the job information of the job to be processed, and to determine whether the job to be processed meets the operating conditions based on the job information and scheduling information.
[0081] Storage unit 30 is used to store the pending job into a queue when the pending job meets the running conditions.
[0082] The detection unit 40 is used to obtain the execution result when it detects that a pending job in the queue has been executed, and to update the scheduling information in the target database based on the execution result.
[0083] The scheduling information processing apparatus provided in this application embodiment, through a first determining unit 10, determines the target application corresponding to the job to be processed and obtains the scheduling information of the target application from a target database, wherein the target database is used to store the scheduling information of multiple applications, and the scheduling information is the data call information of the application when executing the job; a second determining unit 20 determines the job information of the job to be processed and determines whether the job to be processed meets the running conditions based on the job information and the scheduling information; a storage unit 30 stores the job to be processed in a queue if the running conditions are met; and a detection unit 40, when it detects that the job to be processed in the queue has been executed, obtains the execution result and updates the scheduling information in the target database based on the execution result, thereby solving the problem of low processing efficiency of scheduling information in related technologies. By separating the processing of scheduling information from job execution, the processing efficiency of scheduling information is improved.
[0084] Optionally, in the scheduling information processing device provided in the embodiments of this application, the second determining unit 20 includes: a first determining module, used to determine whether the job to be processed needs to call the processing results of other jobs before running, wherein the job is a different job from the job to be processed; the first determining module, used to determine whether there are other jobs that need to call the data to be called corresponding to the job to be processed if the job to be processed does not need to call the processing results of other jobs before running, and if there are other jobs that need to call the data to be called, determine whether the job to be processed is the highest priority job; and the second determining module, used to determine that the job to be processed meets the running conditions if the target application is the highest priority application.
[0085] Optionally, the second determining unit 20 further includes: a second determining module, used to determine whether the free running resources of the target application are greater than or equal to the running resources required to execute the pending job; a third determining module, used to determine the total number of pending jobs and tasks currently being executed by the target application when the free running resources are greater than or equal to the running resources required to execute the pending job, and to determine whether the total number is greater than a preset number, wherein the preset number is the number of concurrent processing jobs of the target application; and an execution module, used to perform the step of determining whether the pending job needs to call the processing results of other jobs before execution when the total number is less than or equal to the preset number.
[0086] Optionally, the device further includes: an acquisition unit for acquiring application information of multiple applications, wherein the application information includes at least one of the following: configuration information or running scripts; a parsing unit for parsing the application information of multiple applications to obtain multiple initial scheduling information; and a conversion unit for converting the multiple initial scheduling information into information of a preset format to obtain multiple scheduling information, and storing the multiple scheduling information in a target database.
[0087] Optionally, the detection unit 40 includes: a generation module, configured to generate target call information based on the execution result and determine the object to which the execution result belongs; a fourth determination module, configured to determine the target call information as the scheduling information of the target application when the object to which the execution result belongs is the target application; a fifth determination module, configured to determine the target call information as the scheduling information of the first application when the object to which the execution result belongs is the first application, wherein the first application is an application other than the target application; and a sixth determination module, configured to determine the target call information as the scheduling information of the target application and the scheduling information of the first application respectively when the object to which the execution result belongs includes both the target application and the first application.
[0088] Optionally, the device further includes: a synchronization unit, used to generate a data synchronization job if there is interaction between the target application and the first application during the execution of the job to be processed, wherein the first application is an application other than the target application, and the data synchronization job is used to realize data interaction between the target application and the first application.
[0089] Optionally, the device further includes: a judgment unit, configured to re-determine the job information of the job to be processed every preset time interval, and re-obtain the scheduling information of the target application from the target database, and judge whether the job to be processed meets the running conditions based on the re-obtained job information and scheduling information, until the number of judgments reaches a preset number, or until the job to be processed meets the running conditions.
[0090] Alternatively, the queue can be hosted on a file server or a database.
[0091] The scheduling information processing device includes a processor and a memory. The aforementioned units are all stored in the memory as program units, and the processor executes the aforementioned program units stored in the memory to realize the corresponding functions.
[0092] A processor contains a kernel, which retrieves the corresponding program units from memory. One or more kernels can be configured, and the efficiency of scheduling information processing can be improved by adjusting kernel parameters.
[0093] The memory may include non-permanent memory in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM, and the memory includes at least one memory chip.
[0094] This invention provides a computer-readable storage medium storing a program thereon, which, when executed by a processor, implements a method for processing scheduling information.
[0095] This invention provides a processor for running a program, wherein the program executes a method for processing scheduling information during runtime.
[0096] like Figure 7 As shown in the illustration, this application also provides an electronic device 701, which includes a processor, a memory, and a program stored in the memory and executable on the processor. When the processor executes the program, it performs the following steps: processing state data based on blockchain. The device in this document can be a server, PC, PAD, mobile phone, etc.
[0097] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0098] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0099] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0100] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0101] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0102] Memory may include non-persistent memory in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0103] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0104] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0105] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0106] The above are merely embodiments of this application and are not intended to limit the scope of this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of the claims of this application.
Claims
1. A method for processing scheduling information, characterized in that, include: The target application corresponding to the job to be processed is determined, and the scheduling information of the target application is obtained from the target database. The target database is used to store the scheduling information of multiple applications, and the scheduling information is the data call information of the application when executing the job. Determine the job information of the job to be processed, and determine whether the job to be processed meets the running conditions based on the job information and the scheduling information; The process of determining whether a pending job meets the running conditions based on the job information and the scheduling information includes: determining whether the pending job needs to call the processing results of other jobs before running, wherein the other jobs are jobs different from the pending job; if the pending job does not need to call the processing results of other jobs before running, determining whether there are other jobs that need to call the data to be called corresponding to the pending job, and if there are other jobs that need to call the data to be called, determining whether the pending job is the highest priority job; and if the target application is the highest priority application, determining that the pending job meets the running conditions. If the pending job meets the running conditions, the pending job is stored in a queue; If the pending job in the queue is detected to be executed, the execution result is obtained, and the scheduling information in the target database is updated according to the execution result.
2. The method according to claim 1, characterized in that, Before determining whether the job to be processed needs to call the processing results of other jobs before running, the method further includes: Determine whether the available runtime resources of the target application are greater than or equal to the runtime resources required to execute the job to be processed; If the available runtime resources are greater than or equal to the runtime resources required to execute the pending job, determine the total number of pending jobs and tasks currently being executed by the target application, and determine whether the total number is greater than a preset number, wherein the preset number is the number of concurrent processing jobs of the target application; If the total number is less than or equal to the preset number, the step of determining whether the job to be processed needs to call the processing results of other jobs before running is performed.
3. The method according to claim 1, characterized in that, Before obtaining the scheduling information of the target application from the target database, the method further includes: Obtain application information of the plurality of applications, wherein the application information includes at least one of the following: configuration information or running script; The application information of the multiple applications is parsed to obtain multiple initial scheduling information; The multiple initial scheduling information is converted into information in a preset format to obtain multiple scheduling information, and the multiple scheduling information is stored in the target database.
4. The method according to claim 1, characterized in that, Updating the scheduling information in the target database based on the execution result includes: Based on the execution result, target invocation information is generated, and the object to which the execution result belongs is determined; If the object to which the execution result belongs is the target application, the target invocation information is determined to be the scheduling information of the target application; If the object to which the execution result belongs is the first application, the target invocation information is determined to be the scheduling information of the first application, wherein the first application is an application other than the target application; If the object to which the execution result belongs includes both the target application and the first application, the target call information is determined as the scheduling information of the target application and the scheduling information of the first application, respectively.
5. The method according to claim 1, characterized in that, After storing the pending jobs in the queue, the method further includes: During the execution of the pending job, if the target application interacts with the first application, a data synchronization job is generated, wherein the first application is an application other than the target application, and the data synchronization job is used to realize data interaction between the target application and the first application.
6. The method according to claim 1, characterized in that, After determining whether the job to be processed meets the running conditions based on the job information and the scheduling information, the method further includes: The job information of the pending job is re-determined every preset time interval, and the scheduling information of the target application is re-obtained from the target database. Based on the re-obtained job information and scheduling information, it is determined whether the pending job meets the running conditions, until the number of determinations reaches a preset number, or until the pending job meets the running conditions.
7. The method according to claim 1, characterized in that, The queue is hosted on a file server or a database.
8. A task processing system, characterized in that, include: The target database is used to store scheduling information for multiple applications, wherein the scheduling information is data call information of the applications when executing jobs; The scheduling information processing unit is communicatively connected to the target database and is used to obtain the scheduling information of the task to be processed from the target database, determine whether the task to be processed meets the running conditions based on the scheduling information and the job information of the task to be processed, and store the task to be processed in a queue if the task to be processed meets the running conditions. The process of determining whether a pending task meets the running conditions based on the scheduling information and the task's job information includes: determining whether the pending task needs to call the processing results of other tasks before running, wherein the other tasks are different from the pending task; if the pending task does not need to call the processing results of other tasks before running, determining whether there are other tasks that need to call the data to be called corresponding to the pending task, and if there are other tasks that need to call the data to be called, determining whether the pending task is the highest priority task; and if the target application is the highest priority application, determining that the pending task meets the running conditions. The job execution unit is used to retrieve the job to be processed from the queue, execute the job to be processed, and obtain the execution result.
9. A processor, characterized in that, The processor is used to run a program, wherein the program executes the scheduling information processing method according to any one of claims 1 to 7 when it runs.
10. An electronic device, characterized in that, The method includes one or more processors and a memory for storing one or more programs, wherein when the one or more programs are executed by the one or more processors, the one or more processors cause the one or more processors to implement the method of any one of claims 1 to 7.