BACKGROUND

Enterprises implement software systems to conduct operations. Operations of an enterprise generate massive amounts of data including, for example, financial data, sales data, product data, manufacturing data, human resources data, and the like. In an effort to efficiently operate, enterprises seek to understand the data representing operations of the enterprise. To this end, software systems have been developed that process data to generate analytical data, which can include, without limitation, summaries, insights, and visualizations.

In some instances, analytical data is periodically published to users within the enterprise in electronic documents. In some examples, an electronic document (also referred to as a document herein) is a computer-generated document that is stored in a computer-readable file. Example documents can include, without limitation, portable document format (PDF) documents, extensible markup language (XML) documents, hypertext markup language (HTML) documents, email documents (e.g., .msg) and word processor documents (e.g., .doc, .txt). Such documents can include analytical data that periodically changes. For example, analytical data for a first time period (e.g., day, week, month, year) can be different than analytical data for a second time period (e.g., day, week, month, year). Consequently, a document can be periodically published based on a schedule and, with each publication, analytical data in the document can be updated.

Scheduling of documents, however, has certain requirements for problem-free publication. In some examples, a document format can implicate server-side requirements for a server that generates the document. For example, PDF documents can require a Chromium plugin and/or Java scheduling service on servers. In some examples, document-level pre-requisites are also enforced for scheduling. For example, document-level requirements can include a particular component and/or script being installed. Failure in execution of schedules for publishing documents is highly problematic. For example, because of the multiple server-side and/or document-level requirements for different document formats, it can be extremely difficult to determine a correct the cause of the failure.

SUMMARY

Implementations of the present disclosure are directed to a smart scheduling service for scheduling documents for publication to users. More particularly, implementations of the present disclosure provide a multi-stage scheduling service that operates on-demand, provides optimized schedule validation, and includes dynamic fail-over.

In some implementations, actions include receiving, by an adaptive job server, a first document, determining, by the adaptive job server, a validation status of the first document based on one or more document-level pre-requisites associated with the first document, transmitting, by the adaptive job server, the first document to a first proxy server in response to determining that the validation status of the first document is true, determining, by the first proxy server, a validation status of the first proxy server based on one or more server-side pre-requisites for scheduling the first document, and scheduling, by the first proxy server, the first document for publishing to one or more users in response to determining that the validation status of the first proxy server is true. Other implementations of this aspect include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods, encoded on computer storage devices.

These and other implementations can each optionally include one or more of the following features: actions further include receiving, by the adaptive job server, a second document, and determining, by the adaptive job server, a validation status of the second document based on one or more document-level pre-requisites associated with the second document; actions further include, in response to determining that the validation status of the second document is false: blocking the second document from scheduling and performing one or more of issuing a notification and receiving a third document; actions further include transmitting, by the adaptive job server, the second document to a second proxy server in response to determining that the validation status of the second document is true, determining, by the second proxy server, a validation status of the second proxy server based on one or more server-side pre-requisites for scheduling the second document, and transmitting, by the second proxy server, the second document for processing by another proxy server in response to determining that the validation status of the second proxy server is false; determining a validation status of the first document is executed in response to determining that a first attribute and a second attribute of the first document are not equal; determining a validation status of the first proxy server is executed in response to determining one of that the first proxy server is handling a scheduling request for the first time, or that the first proxy server has been modified since last handling a scheduling request; and scheduling the first document for publishing to one or more users includes retrieving data and any analytical objects that are to be applied to the first document to provide a populated document and transmitting the populated document to one or more users at a pre-determined time.

The present disclosure also provides a computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.

The present disclosure further provides a system for implementing the methods provided herein. The system includes one or more processors, and a computer-readable storage medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.

It is appreciated that methods in accordance with the present disclosure can include any combination of the aspects and features described herein. That is, methods in accordance with the present disclosure are not limited to the combinations of aspects and features specifically described herein, but also include any combination of the aspects and features provided.

The details of one or more implementations of the present disclosure are set forth in the accompanying drawings and the description below. Other features and advantages of the present disclosure will be apparent from the description and drawings, and from the claims.

