CN112311597A - Message pushing method and device - Google Patents

Message pushing method and device Download PDF

Info

Publication number
CN112311597A
CN112311597A CN202011169087.7A CN202011169087A CN112311597A CN 112311597 A CN112311597 A CN 112311597A CN 202011169087 A CN202011169087 A CN 202011169087A CN 112311597 A CN112311597 A CN 112311597A
Authority
CN
China
Prior art keywords
push
task
pushing
preset
tasks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011169087.7A
Other languages
Chinese (zh)
Other versions
CN112311597B (en
Inventor
鲁佳丰
胡晓丰
郭飞
杭飞云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Shangwang Network Technology Co ltd
Original Assignee
Nanjing Shangwang Network Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Shangwang Network Technology Co ltd filed Critical Nanjing Shangwang Network Technology Co ltd
Priority to CN202011169087.7A priority Critical patent/CN112311597B/en
Publication of CN112311597A publication Critical patent/CN112311597A/en
Application granted granted Critical
Publication of CN112311597B publication Critical patent/CN112311597B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/026Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using e-messaging for transporting management information, e.g. email, instant messaging or chat
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5093Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to messaging or chat services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The application discloses a message pushing method and device, and relates to the technical field of internet and information pushing. The specific implementation mode comprises the following steps: the method comprises the steps of obtaining a plurality of pushing tasks used for indicating to push messages to a client, and respectively issuing tokens in a token bucket to the pushing tasks, wherein the tokens indicate that the pushing tasks are to be executed; and (3) executing a matching step: for a push task in the multiple push tasks, matching relevant information of the push task with a preset push condition of the push task, and returning a token corresponding to the push task of which the relevant information is not matched with the preset push condition to the token bucket; and executing the push tasks with the corresponding tokens still remained in the plurality of push tasks. According to the method and the device, after the token is issued, the current limitation of the push message is carried out through returning of the token, the occurrence of push peaks is avoided to a certain extent, the expenditure of the server is reduced, and the effective utilization rate of the server is improved.

Description

Message pushing method and device
Technical Field
The present application relates to the field of computer technologies, and in particular, to the field of internet and information push technologies, and in particular, to a method and an apparatus for pushing a message.
Background
With the development of internet technology, more and more users begin to use applications with various terminal devices.
In the prior art, once a client is online, a server pushes a message to a terminal. During the peak period when the client is on line, the situation that the server pushes to a plurality of terminals at the same time can be caused. And at this point a high push spike may occur. Network providers usually charge according to the peak of push, so that the push mode is likely to consume a large push cost.
Disclosure of Invention
A message pushing method, a message pushing device, an electronic device and a storage medium are provided.
According to a first aspect, there is provided a message pushing method, including: the method comprises the steps of obtaining a plurality of pushing tasks used for indicating to push messages to a client, and respectively issuing tokens in a token bucket to the plurality of pushing tasks, wherein the tokens indicate that the pushing tasks are to be executed; and (3) executing a matching step: for a push task in a plurality of push tasks, matching relevant information of the push task with a preset push condition of the push task, and returning a token corresponding to the push task with the relevant information not matched with the preset push condition to a token bucket; and executing the push tasks with the corresponding tokens still remained in the plurality of push tasks.
According to a second aspect, there is provided a message pushing apparatus comprising: the system comprises an acquisition unit, a processing unit and a processing unit, wherein the acquisition unit is configured to acquire a plurality of push tasks for indicating to push messages to a client, and issue tokens in a token bucket to the plurality of push tasks respectively, wherein the tokens indicate that the push tasks are to be executed; a matching unit configured to perform the matching step: for a push task in a plurality of push tasks, matching relevant information of the push task with a preset push condition of the push task, and returning a token corresponding to the push task with the relevant information not matched with the preset push condition to a token bucket; and the pushing unit is configured to execute the pushing task with the corresponding token in the plurality of pushing tasks.
According to a third aspect, there is provided an electronic device comprising: one or more processors; a storage device for storing one or more programs which, when executed by one or more processors, cause the one or more processors to implement a method as in any embodiment of the message push method.
According to a fourth aspect, there is provided a computer-readable storage medium having stored thereon a computer program which, when executed by a processor, implements a method as in any one of the embodiments of the message push method.
According to the scheme, the flow limitation of the push message can be carried out through returning of the token after the token is issued, the push peak is avoided to a certain extent, the expenditure of the server is reduced, and the effective utilization rate of the server is improved.
Drawings
Other features, objects and advantages of the present application will become more apparent upon reading of the following detailed description of non-limiting embodiments thereof, made with reference to the accompanying drawings in which:
FIG. 1 is an exemplary system architecture diagram to which some embodiments of the present application may be applied;
FIG. 2a is a flow diagram of one embodiment of a message push method according to the present application;
FIG. 2b is a flow diagram of yet another embodiment of a message push method according to the present application;
FIG. 3 is a schematic diagram of an application scenario of a message push method according to the present application;
FIG. 4a is a flow diagram of yet another embodiment of a message push method according to the present application;
FIG. 4b is a schematic diagram illustrating an embodiment of a message pushing apparatus according to the present application;
FIG. 5 is yet another schematic diagram of an embodiment of a message pushing device according to the present application;
fig. 6 is a block diagram of an electronic device for implementing a message pushing method according to an embodiment of the present application.
Detailed Description
The following description of the exemplary embodiments of the present application, taken in conjunction with the accompanying drawings, includes various details of the embodiments of the application for the understanding of the same, which are to be considered exemplary only. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the present application. Also, descriptions of well-known functions and constructions are omitted in the following description for clarity and conciseness.
It should be noted that the embodiments and features of the embodiments in the present application may be combined with each other without conflict. The present application will be described in detail below with reference to the embodiments with reference to the attached drawings.
Fig. 1 shows an exemplary system architecture 100 to which embodiments of the message pushing method or message pushing apparatus of the present application may be applied.
As shown in fig. 1, the system architecture 100 may include terminal devices 101, 102, 103, a network 104, and a server 105. The network 104 serves as a medium for providing communication links between the terminal devices 101, 102, 103 and the server 105. Network 104 may include various connection types, such as wired, wireless communication links, or fiber optic cables, to name a few.
The user may use the terminal devices 101, 102, 103 to interact with the server 105 via the network 104 to receive or send messages or the like. Various communication client applications, such as a network (e.g., WIFI) connection application, a video application, a live application, an instant messaging tool, a mailbox client, social platform software, and the like, may be installed on the terminal devices 101, 102, and 103.
Here, the terminal apparatuses 101, 102, and 103 may be hardware or software. When the terminal devices 101, 102, 103 are hardware, they may be various electronic devices having a display screen, including but not limited to smart phones, tablet computers, e-book readers, laptop portable computers, desktop computers, and the like. When the terminal apparatuses 101, 102, 103 are software, they can be installed in the electronic apparatuses listed above. It may be implemented as multiple pieces of software or software modules (e.g., multiple pieces of software or software modules to provide distributed services) or as a single piece of software or software module. And is not particularly limited herein.
The server 105 may be a server providing various services, such as a background server providing support for the terminal devices 101, 102, 103. The background server may analyze and process the received data such as the client online message, and feed back a processing result (e.g., a push task) to the terminal device.
It should be noted that the message pushing method provided in the embodiment of the present application may be executed by the server 105, and accordingly, the message pushing apparatus may be disposed in the server 105. In practice, the scheme in the application can be completed on the same server or can be completed by a plurality of servers together.
It should be understood that the number of terminal devices, networks, and servers in fig. 1 is merely illustrative. There may be any number of terminal devices, networks, and servers, as desired for implementation.
With continued reference to fig. 2a, a flow 200 of one embodiment of a message push method according to the present application is shown. The message pushing method comprises the following steps:
step 201, acquiring a plurality of pushing tasks for indicating to push messages to a client, and respectively issuing tokens in a token bucket to the plurality of pushing tasks, wherein the tokens indicate that the pushing tasks are to be executed.
In this embodiment, an execution subject (for example, the server shown in fig. 1) on which the message pushing method operates may obtain a plurality of pushing tasks indicating that a message is pushed to a client, and determine tokens respectively corresponding to the plurality of pushing tasks from a token bucket. That is, the execution entity may issue tokens in the token bucket to the plurality of push tasks. The push task here is to push a message to the client. Push tasks with tokens will be executed and push tasks without tokens will not be executed.
Step 202, performing a matching step: and for the push tasks in the multiple push tasks, matching the related information of the push tasks with the preset push conditions of the push tasks, and returning the tokens corresponding to the push tasks with the related information not matched with the preset push conditions to the token bucket.
In this embodiment, the execution body may execute the matching step. Specifically, the matching step may include that, for a push task of the multiple push tasks, for example, for each push task, the execution main body matches task information of the push task with a preset push condition of the push task, and determines that relevant information of which push task is not matched with the preset push condition (of the one push task), and returns a token corresponding to the one push task to the token bucket, so that the push task to which the token is returned does not currently have an executed right. The token corresponding to the push task refers to a token issued to the client corresponding to the push task. Each push task may have a corresponding preset push condition.
In practice, the related information may be various information related to the push task, for example, the related information may be a client download channel corresponding to the push task, that is, a download channel of a client corresponding to the push task. Each client may have the above related information, that is, the related information of the push tasks for different clients may be different. The preset push condition is a defined condition set for the related information. For example, a specific client download channel (e.g., a preset client download channel condition) is required, and the matching result is matched.
For example, the download channel may be a brand a download store, a brand B download store, and so on. One push task is to push promotional information for applications running on brand a phones. The preset push condition (client download channel condition) of the push task may be a client download limited to brand a download stores. And if the download channel of the push task is the brand A download store, the matching result is matched, and if the download channel of the push task is the brand B download store, the matching result is not matched.
Step 203, executing the push task with the corresponding token still kept in the plurality of push tasks.
In this embodiment, the execution main body may execute the push task in which the corresponding token still exists among the plurality of push tasks, so that the execution main body may push the push task instruction in which the token exists. That is, the execution body may push a message to a client other than the terminal returning the token.
According to the method provided by the embodiment of the application, after the token is issued, the flow limitation of the push message can be performed through the return of the token, the occurrence of push peaks is avoided to a certain extent, the expenditure of the server is reduced, and the effective utilization rate of the server is improved.
In some optional implementations of this embodiment, the tokens in the token bucket are respectively issued to the clients corresponding to the multiple pushing tasks in step 201, and the matching step in step 202 may be completed within one token issuing period.
In these alternative implementations, the execution body may complete the process of issuing and returning the token within one token issuing cycle, that is, within a period of time of a preset duration. The execution main body sets the time window for token issuance, so that the periodical token issuance and pushing process can be realized, the situation that too short time is too late to realize token issuance and returning time is avoided, and the problem that too much overstocked messages are pushed for too long time and a traffic peak is possibly caused instantaneously is also avoided.
In some optional implementation manners of this embodiment, the preset pushing condition includes at least one of the following items corresponding to the pushing task: the method comprises the following steps of flow domain name conditions, client downloading channel conditions, client version conditions, equipment identification grouping conditions, equipment identification conditions, pushing time period range conditions, prefix and equipment identification conditions and user time interval conditions.
In these alternative implementations, the preset push conditions each correspond to a push task. For example, client download channel conditions may be included. In addition, the preset push condition may further include a client version condition corresponding to the push task, and in this case, the push task may be set to be only open to the preset client version, that is, if the client version of the client corresponding to the push task is the preset client version, the related information of the push task matches the client version condition of the push task. And if the client version of the client corresponding to the push task is not the preset client version, the relevant information of the push task is not matched with the client version condition of the push task.
The traffic domain name condition refers to a condition set for a traffic domain corresponding to the traffic domain name (cdn). Each flow field may be set with a corresponding flow peak threshold, i.e. the highest value of the flow value (per unit time period, e.g. 1 day), i.e. the flow per unit time, i.e. the rate, e.g. 1 second of flow.
The device id grouping condition refers to a condition set for a grouping condition of device ids after a remainder (for example, a remainder obtained by dividing by a natural number) is obtained. The device identifier (e.g., DHID) may be a number, if a remainder obtained by subtracting the number exists in a preset remainder value set of the push task, the two push tasks are matched with each other, that is, the relevant information and the device identifier grouping condition, and if the remainder does not exist in the preset remainder value set, the two are not matched with each other.
The device identification condition refers to a definition of a device identification of the client. For example, a specified device identifier list exists in the push task, and only the client corresponding to the device identifier on the list can receive the push for the push task. Correspondingly, the matching result of matching the push tasks corresponding to the device identifiers on the list is matching. In addition, a device identifier blacklist may also exist for the push task, that is, the device identifier on the blacklist does not receive the push for the push task. Correspondingly, the matching result of matching the push tasks corresponding to the device identifiers on the blacklist is unmatched.
The push period range condition refers to a push period defined for the push task, such as 8 am local to 8 pm. If the current time is within the push period, the relevant information of the push task is matched with the push period range condition of the push task. If the current time is not within the push period, the related information of the push task does not match with the push period range condition of the push task.
The prefix and device identification condition refers to whether a prefix (redis prefix) field of the push task is a preset prefix identification of the push task, and if so, the related information of the push task is matched with the prefix and device identification condition of the push task.
The time interval condition of the user refers to the push frequency setting of the same push task to the same client. If the preset pushing condition includes a time interval condition of a user corresponding to the pushing task, the pushing task can be executed only once for the same user within a preset time length (i.e. a preset unit time interval). For example, the same user can only be pushed once a day.
The implementation modes can effectively filter the pushing tasks through each preset pushing condition, so that the matched pushing tasks meet the requirements of users, the pushing purposes are met, and the overhigh flow peak value can be avoided.
In some optional implementation manners of this embodiment, the preset push condition includes a traffic domain name condition corresponding to the push task; matching the related information of the push task with the preset push condition of the push task, comprising: determining a traffic domain name corresponding to a push task in a plurality of push tasks, wherein each traffic domain name has a corresponding traffic peak threshold; predicting a flow peak value of a pushing task to be pushed by using a flow domain indicated by a flow domain name corresponding to the pushing task, wherein a token corresponding to the pushing task participating in prediction exists; and if the predicted flow peak value does not exceed the flow peak value threshold value, determining that the relevant information of the pushing task is matched with the flow domain name condition corresponding to the pushing task.
In these alternative implementations, the execution main body may determine, for a push task in a plurality of push tasks, for example, for each push task, a traffic domain name corresponding to the push task. And determining whether the pushing task is matched with the flow domain name included in the preset pushing condition or not by using the flow peak value threshold value corresponding to the flow domain indicated by the flow domain name. Specifically, the executing entity may predict a traffic peak that may be generated by each push task that is pushed using a traffic domain used for executing the push task. The peak flow rate may refer to a peak flow rate per unit time, for example, a peak flow rate in 1 second. And participating in the predicted push task, that is, the push task in which the corresponding client has the issued token among the plurality of push tasks.
In practice, the traffic domain name may be the traffic domain name field in the push task string, i.e., the cdn field. Each traffic domain may be individually set with a traffic peak threshold.
The implementation manners can perform targeted current limiting on each traffic domain, so that each traffic domain can not exceed the limited push traffic, and the peak value of the total push traffic can be effectively ensured to be low.
In some optional implementation manners of this embodiment, in a case that the preset pushing condition includes a time interval of a user corresponding to a pushing task, in response to that at least two same pushing tasks correspond to the same client, the number of tokens retained in the same pushing task is one.
In these optional implementation manners, if there are more than two same push tasks corresponding to the same client and issued with tokens, when the execution main body matches the preset push condition, only one push task is reserved for the same client, that is, only one push task among the push tasks to which the client is issued with tokens is reserved with tokens.
These implementations may avoid the same user from frequently receiving the same push task to ensure a good user experience.
In some optional implementation manners of this embodiment, the preset push condition includes an equipment identifier grouping condition corresponding to the push task; the matching the relevant information of the push task in the step 202 with the preset push condition of the push task may include: determining the equipment identifier of the client indicated by the push task, wherein the equipment identifier is a number; the device identification is complemented to obtain a remainder corresponding to the pushing task, the remainder is divided into a remainder value group corresponding to the number value of the remainder, and the remainder value group is used as a target remainder value group; determining whether a target remainder value set is included in preset remainder value sets of the pushing task, wherein the number of the preset remainder value sets is at least one; and if the target remainder value group is determined to be included, determining that the relevant information of the push task is matched with the equipment identification grouping condition of the push task.
In these alternative implementations, the execution main body may perform complementation according to a preset complementation manner. The number is a natural number, for example, the remainder obtained by dividing the number by 10 is one of 1 to 9. Each (or at least two) of the 10 remainders corresponds to a set of remainder values. Each push task may define at least one preset remainder value set, and if the remainder value set determined for the current push task exists in the preset remainder value set, it may be determined that the matching results are a match.
These implementations may more accurately screen push tasks by defining groupings of device identifications.
In some optional implementation manners of this embodiment, the preset push condition includes a prefix and device identification condition corresponding to the push task; the matching the relevant information of the push task in the step 202 with the preset push condition of the push task may include: determining a prefix field of the push task, and combining the prefix field with the equipment identifier of the push task to obtain a prefix identifier combination as a target prefix identifier combination; searching whether a target prefix identification combination exists in a preset prefix identification set corresponding to the push task; and if the push task is found, determining that the relevant information of the push task is matched with the task prefix and equipment identification condition of the push task.
In these alternative implementations, there are some push tasks that need to be performed for a particular client. The execution subject may combine the prefixes of these push tasks with the device identifier of the specific client, for example, the combined structure is { prefix }: { dhid }. And a preset prefix identification set is formed by the combined results. When the push tasks are matched, the execution main body can combine the prefix fields of the push tasks and the equipment identifiers of the push tasks to obtain prefix identifier combinations of the push tasks, compare the prefix identifier combinations with all prefix identifier combinations in the preset prefix identifier set, and if the prefix identifier combinations are consistent, the matching can be determined.
The implementation modes can accurately screen the client corresponding to the pushing task through the prefix field and the equipment identification, so that accurate matching is realized.
In some optional implementation manners of this embodiment, the preset pushing condition further includes a preset pushing number; matching the related information of the push task with the preset push condition of the push task, and further comprising: judging whether the number of the matched push tasks exceeds a preset push number or not; if the number of the target push tasks exceeds the preset push number, determining target push tasks meeting the preset push number from the current matched push tasks, and determining that the relevant information of the target push tasks is matched with the preset push number corresponding to the target push tasks; and if the preset pushing quantity is not exceeded, directly determining that the relevant information of the currently matched pushing task is matched with the preset pushing quantity of the pushing task.
In these alternative implementations, the execution subject may reduce the number of push tasks when the number of matched push tasks is too large. In the currently matched push tasks, the push tasks other than the target push task may be determined as tasks whose information is not matched with the preset push quantity of the push task.
These implementations can avoid the situation of too high traffic peak due to too large number of push tasks.
In some optional implementation manners of this embodiment, the preset pushing condition further includes a limited number of tasks corresponding to the pushing task, and the matching of the relevant information of the pushing task and the preset pushing condition of the pushing task in step 202 may further include: judging whether the push tasks which exist in the matched push tasks and reach the limited number of the tasks exist or not; and if the judgment result is yes, determining that the judged related information of the pushing task is not matched with the limited quantity of the tasks of the pushing task.
In these alternative implementations, the executing entity may determine whether there is any push task from the currently matched push tasks: the push task has a limited number of tasks and the limited number of tasks for the push task has been reached. If so, it may be determined that the push task is not matching. For example, a certain pushing task is to push a coupon, and the limited number of the tasks is 2 thousand. If the number of currently executed push tasks reaches 2 thousand, if there are more push tasks in the currently matched push tasks, it may be determined that the relevant information of the push task does not match the limited number of tasks of the push task.
In practice, the currently matched push task refers to a currently determined matched push task obtained after a previous match (each preset push condition arranged in the first of the at least two preset push conditions) has been performed.
These implementations effectively comply with a limited number of tasks, avoiding excessive execution of the limited number of tasks, while also further ensuring lower traffic peaks when pushed.
In some optional implementation manners of this embodiment, matching the relevant information of the push task with a preset push condition of the push task includes: under the condition that the number of the preset pushing conditions of the pushing task is at least two, in response to the fact that the relevant information of the pushing task is matched with the current preset pushing condition, matching the matched relevant information of the pushing task with the next preset pushing condition; and in response to determining that the push task is not matched with the current preset push condition, stopping the matching process and determining that the relevant information of the push task is not matched with the preset push condition.
In these alternative implementations, the preset push condition of the push task may include at least two. Once matching with one preset pushing condition is successful, matching with the next preset pushing condition can be performed, and if matching fails, the result of matching can be determined to be unmatched. The arrangement sequence of the preset push conditions may be preset or random, and there may be a case where the arrangement sequence of a part of the preset push conditions is fixed, and the preset push conditions other than the part of the preset push conditions are random. The preset push condition, for example, with a fixed ranking order, may include a preset number of pushes and/or a limited number of tasks.
Optionally, in response to that the preset push conditions of the push task include at least two preset push conditions having a matching sequence, for a push task in the multiple push tasks, matching relevant information of the push task with each preset push condition in the at least two preset push conditions according to the matching sequence.
These implementations may achieve an accurate match with each preset push condition.
As shown in fig. 2b, a further flowchart of the message push method according to the present embodiment is shown. Whether the online event message exceeds three minutes or not means whether the timestamp of the online terminal exceeds three minutes from the current time or not, that is, the online time corresponding to the online event message does not exceed the preset time from the current time in the screening condition. Whether the global switch is open, that is, whether the "task generation switch" in the screening condition is open. The global user frequency control in the figure means that "the client corresponding to the online event message in the screening condition is not pushed by the push task within the preset time length".
With continuing reference to fig. 3, fig. 3 is a schematic diagram of an application scenario of the message push method according to the present embodiment.
With further reference to fig. 4, a flow 400 of yet another embodiment of a message push method is shown. The process 400 includes the following steps:
step 401, executing the connection step: and responding to a connection establishment request sent by a client, establishing communication connection with the client, and acquiring an online event message.
In the present embodiment, an execution subject (e.g., the server shown in fig. 1) on which the message push method operates may perform the connection step. Specifically, the connection step may refer to establishing a communication connection with the client after receiving a connection establishment request sent by the client, and acquiring an online event message: and receiving an online event message from the client or generating the online event message of the client. The connection establishment request refers to a request sent to the server for establishing a communication connection after the client is online.
Step 402, performing the joining step: and adding the online event message of the client into a message set.
In this embodiment, the execution body may execute the joining step. I.e. adding the client's online event message to the message set. The message set is used to collect online event messages.
Step 403, executing a pulling step: and pulling the online event message from the message set, and determining a plurality of push tasks corresponding to a plurality of pulled online event messages.
In this embodiment, the execution body may execute the pulling step. Specifically, the execution agent may pull the online event message from the message set. Such as pulling a preset number of online event messages.
Optionally, the pulling the online event message from the message set may include: determining the current processing capacity of the mobile terminal, and determining the number to be processed of the online event messages matched with the processing capacity; and pulling the online event messages according with the quantity to be processed from the message set.
The execution main body can determine the number of online event messages matched with the processing capacity according to the current processing capacity of the execution main body, and pull the number of online event messages according to the requirement. Therefore, the execution main body can accurately pull the current state according to the processing capacity of the execution main body, and the online event message exceeding the processing capacity is prevented from being pulled. In practice, the execution agent may determine its own processing capability according to various information, such as current operation information and/or memory information, which embodies its own processing capability.
The embodiment can utilize the message set to limit the online event messages, and avoids the problem that the push task fails to be executed because each online event message cannot be processed in time under the condition that the received online event messages are too many.
In some optional implementation manners of this embodiment, the server includes a first server, a second server, and a third server, the message set is a first-in first-out message queue, the connecting step is performed by the first server, the adding step is performed by the second server, and the pulling step is performed by the third server.
In these alternative implementations, the server may be composed of three or more servers. The first server (push server), the second server (kafka server), and the third server (consumer server) may each include more than one server entity device. The first server may send the online event message of the client in the connection step to the second server, which is favorable for the second server to add the online event message into the message queue.
Optionally, the connecting step may further include: and the first server sends the online event message of the client to the second server.
As shown in fig. 4b, the architecture diagram of the server side composed of the first server, the second server and the third server is shown.
The implementation modes can realize load balance among all devices through three servers, and avoid the problem of overlarge operating pressure of one server.
In some optional implementation manners of this embodiment, the determining, in the pulling step, a plurality of push tasks corresponding to a plurality of pulled online event messages in the pulled online event messages may include: determining a plurality of pull online event messages in the pulled online event messages based on at least one of the following screening conditions: the time length of the online time corresponding to the online event message is not more than the preset time length from the current time length, the client corresponding to the online event message is not pushed by the pushing task within the preset time length, and whether the task generating switch is turned on or not is judged.
In these alternative implementations, the executing entity may determine a plurality of online event messages in the pulled online event messages based on at least one filtering condition. Then, the execution subject may determine the push tasks, that is, the push tasks, corresponding to the online event messages, respectively.
In practice, the online time corresponding to the online event message in the screening condition is not longer than the current time by a preset time, which may refer to the online time of the client corresponding to the online event message (i.e. the time for logging in the client or the time for starting the client), and the time from the current time is not longer than the preset time. The duration of use of the application (client) by the user may be short, and if the user has logged off the client (application), the push is of little significance. The screening condition can ensure the effect of pushing the message.
Whether the task generation switch in the screening condition is turned on or not is indicated, and a switch is arranged to deal with an emergency scene, for example, the switch can be turned off when online event messages are excessively accumulated in a third server. At this time, the execution body may temporarily no longer determine the push task. The screening condition may avoid a pile-up of push messages.
The fact that the client corresponding to the online event message is not pushed by the push task within the preset time (that is, within the preset historical time) means that the client corresponding to the online event message has not received the push task within a period of time before, for example, the message pushed by the server has not been received within the past 1 hour. The screening condition may prevent the user from frequently receiving the pushed message.
In some optional implementation manners of this embodiment, the determining, in the pulling step, a plurality of push tasks corresponding to a plurality of pulled online event messages in the pulled online event messages may include: and determining a plurality of pushing tasks corresponding to the plurality of online event messages through the type identifications of the clients corresponding to the online event messages, wherein each type identification has a corresponding pushing task.
In these alternative implementations, the execution subject may determine the push task by using a type identifier (appID) of the client. For example, one type identifier may indicate a very fast version client, another type identifier may indicate a standard version client, and so on.
The implementation modes can accurately determine different pushing tasks for the client of each user aiming at different client type identifications.
With further reference to fig. 5, as an implementation of the method shown in the above figures, the present application provides an embodiment of a message pushing apparatus, where the embodiment of the apparatus corresponds to the embodiment of the method shown in fig. 2, and besides the features described below, the embodiment of the apparatus may further include the same or corresponding features or effects as the embodiment of the method shown in fig. 2. The device can be applied to various electronic equipment.
As shown in fig. 5, the message pushing apparatus 500 of the present embodiment includes: an acquisition unit 501, a matching unit 502 and a push unit 503. The obtaining unit 501 is configured to obtain a plurality of push tasks for indicating to push messages to a client, and issue tokens in a token bucket to the plurality of push tasks respectively, where the tokens indicate that the push tasks are to be executed; a matching unit 502 configured to perform the matching step: for a push task in the multiple push tasks, matching relevant information of the push task with a preset push condition of the push task, and returning a token corresponding to the push task of which the relevant information is not matched with the preset push condition to the token bucket; a push unit 503 configured to execute a push task of the plurality of push tasks, in which a corresponding token remains.
In this embodiment, specific processing of the obtaining unit 501, the matching unit 502, and the pushing unit 503 of the message pushing apparatus 500 and technical effects thereof can refer to related descriptions of step 201, step 202, and step 203 in the corresponding embodiment of fig. 2, which are not described herein again.
In some optional implementation manners of this embodiment, the issuing of the tokens in the token bucket to the clients corresponding to the multiple push tasks, respectively, and the performing the matching step are completed within one token issuing period.
In some optional implementations of this embodiment, the matching unit is further configured to perform the matching of the relevant information of the push task and the preset push condition of the push task as follows: under the condition that the number of the preset pushing conditions of the pushing task is at least two, in response to the fact that the relevant information of the pushing task is matched with the current preset pushing condition, matching the matched relevant information of the pushing task with the next preset pushing condition; and in response to determining that the push task is not matched with the current preset push condition, stopping the matching process, and determining that the relevant information of the push task is not matched with the preset push condition.
In some optional implementations of this embodiment, the apparatus further includes: a first execution unit configured to execute the connecting step: responding to a connection establishment request sent by a client, establishing communication connection with the client, and acquiring an online event message of the client; a second execution unit configured to execute the joining step: adding the online event message of the client into a message set; a third execution unit configured to execute the pulling step: and pulling the online event message from the message set, and determining the plurality of pushing tasks corresponding to the plurality of online event messages in the pulled online event message.
In some optional implementation manners of this embodiment, the server includes a first server, a second server, and a third server, the message set is a first-in first-out message queue, the connecting step is performed by the first server, the joining step is performed by the second server, and the pulling step is performed by the third server.
In some optional implementations of this embodiment, the third executing unit is further configured to execute the multiple push tasks corresponding to multiple online event messages in the determined pulled online event message as follows: determining a plurality of pull online event messages in the pulled online event messages based on at least one of the following screening conditions: the time length of the online time corresponding to the online event message is not more than the preset time length from the current time length, the client corresponding to the online event message is not pushed by the pushing task within the preset time length, and whether the task generating switch is turned on or not is judged.
In some optional implementations of this embodiment, the third executing unit is further configured to execute the multiple push tasks corresponding to multiple online event messages in the determined pulled online event message as follows: and determining a plurality of pushing tasks corresponding to the plurality of online event messages through the type identifications of the clients corresponding to the online event messages, wherein each type identification has a corresponding pushing task.
In some optional implementation manners of this embodiment, the preset pushing condition includes at least one of the following items corresponding to the pushing task: the method comprises the following steps of flow domain name conditions, client downloading channel conditions, client version conditions, equipment identification grouping conditions, equipment identification conditions, pushing time period range conditions, prefix and equipment identification conditions and user time interval conditions.
In some optional implementation manners of this embodiment, the preset push condition includes a traffic domain name condition corresponding to the push task; the matching unit is further configured to perform the matching of the relevant information of the push task and the preset push condition of the push task as follows: determining a traffic domain name corresponding to a push task in the plurality of push tasks, wherein each traffic domain name has a corresponding traffic peak threshold; predicting a flow peak value of a pushing task to be pushed by using a flow domain indicated by a flow domain name corresponding to the pushing task, wherein a token corresponding to the pushing task participating in prediction exists; and if the predicted flow peak value does not exceed the flow peak value threshold value, determining that the relevant information of the push task is matched with the flow domain name condition of the push task.
In some optional implementation manners of this embodiment, in a case that the preset pushing condition includes a time interval of the user corresponding to a pushing task, in response to that at least two identical pushing tasks corresponding to the same client are provided, the number of tokens retained in the identical pushing tasks is one.
In some optional implementation manners of this embodiment, the preset push condition includes an equipment identifier grouping condition corresponding to a push task; the matching unit is further configured to perform the matching of the relevant information of the push task and the preset push condition of the push task as follows: determining the equipment identifier of the client indicated by the push task, wherein the equipment identifier is a number; the device identification is subjected to complementation to obtain a remainder corresponding to the pushing task, the remainder is divided into a remainder value group corresponding to the number value of the remainder, and the remainder value group is used as a target remainder value group; determining whether the target remainder value set is included in preset remainder value sets of the pushing task, wherein the number of the preset remainder value sets is at least one; and if the target remainder value group is determined to be included, determining that the relevant information of the push task is matched with the equipment identification grouping condition of the push task.
In some optional implementation manners of this embodiment, the preset push condition includes a prefix and device identifier condition corresponding to the push task; the matching unit is further configured to perform the matching of the relevant information of the push task and the preset push condition of the push task as follows: determining a prefix field of the push task, combining the prefix field with the equipment identifier of the push task to obtain a prefix identifier combination, and taking the prefix identifier combination as a target prefix identifier combination; searching whether the target prefix identification combination exists in a preset prefix identification set corresponding to the push task; and if the push task is found, determining that the relevant information of the push task is matched with the task prefix and equipment identification condition of the push task.
In some optional implementation manners of this embodiment, the preset pushing condition further includes a preset pushing number; the matching unit is further configured to perform the matching of the relevant information of the push task and the preset push condition of the push task as follows: judging whether the number of the matched push tasks exceeds the preset push number or not; if the preset pushing quantity is exceeded, determining a target pushing task which accords with the preset pushing quantity from the currently matched pushing tasks, and determining that the relevant information of the target pushing task is matched with the preset pushing quantity corresponding to the target pushing task; and if the preset pushing quantity is not exceeded, directly determining that the relevant information of the currently matched pushing task is matched with the preset pushing quantity of the pushing task.
In some optional implementations of this embodiment, the preset push condition further includes a limited number of tasks corresponding to the push task, and the matching unit is further configured to perform the matching between the relevant information of the push task and the preset push condition of the push task as follows: judging whether the push tasks which exist in the matched push tasks and reach the limited number of the tasks exist or not; and if the judgment result is yes, determining that the judged related information of the pushing task is not matched with the limited quantity of the tasks of the pushing task.
According to an embodiment of the present application, an electronic device and a readable storage medium are also provided.
Fig. 6 is a block diagram of an electronic device according to a message pushing method in an embodiment of the present application. Electronic devices are intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. The electronic device may also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the present application that are described and/or claimed herein.
As shown in fig. 6, the electronic apparatus includes: one or more processors 601, memory 602, and interfaces for connecting the various components, including a high-speed interface and a low-speed interface. The various components are interconnected using different buses and may be mounted on a common motherboard or in other manners as desired. The processor may process instructions for execution within the electronic device, including instructions stored in or on the memory to display graphical information of a GUI on an external input/output apparatus (such as a display device coupled to the interface). In other embodiments, multiple processors and/or multiple buses may be used, along with multiple memories and multiple memories, as desired. Also, multiple electronic devices may be connected, with each device providing portions of the necessary operations (e.g., as a server array, a group of blade servers, or a multi-processor system). In fig. 6, one processor 601 is taken as an example.
The memory 602 is a non-transitory computer readable storage medium as provided herein. The memory stores instructions executable by the at least one processor, so that the at least one processor executes the message pushing method provided by the present application. The non-transitory computer readable storage medium of the present application stores computer instructions for causing a computer to execute the message push method provided by the present application.
The memory 602, which is a non-transitory computer readable storage medium, may be used to store non-transitory software programs, non-transitory computer executable programs, and modules, such as program instructions/modules corresponding to the message pushing method in the embodiment of the present application (for example, the obtaining unit 501, the matching unit 502, and the pushing unit 503 shown in fig. 5). The processor 601 executes various functional applications of the server and data processing by running non-transitory software programs, instructions and modules stored in the memory 602, that is, implements the message push method in the above method embodiment.
The memory 602 may include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application program required for at least one function; the storage data area may store data created from use of the message push electronic device, and the like. Further, the memory 602 may include high speed random access memory, and may also include non-transitory memory, such as at least one magnetic disk storage device, flash memory device, or other non-transitory solid state storage device. In some embodiments, the memory 602 may optionally include memory located remotely from the processor 601, and such remote memory may be coupled to the message push electronic device via a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The electronic device of the message pushing method may further include: an input device 603 and an output device 604. The processor 601, the memory 602, the input device 603 and the output device 604 may be connected by a bus or other means, and fig. 6 illustrates the connection by a bus as an example.
The input device 603 may receive input numeric or character information and generate key signal inputs related to user settings and function control of the message-pushing electronic device, such as an input device like a touch screen, a keypad, a mouse, a track pad, a touch pad, a pointer, one or more mouse buttons, a track ball, a joystick, etc. The output devices 604 may include a display device, auxiliary lighting devices (e.g., LEDs), and tactile feedback devices (e.g., vibrating motors), among others. The display device may include, but is not limited to, a Liquid Crystal Display (LCD), a Light Emitting Diode (LED) display, and a plasma display. In some implementations, the display device can be a touch screen.
Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, application specific ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various embodiments may include: implemented in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, receiving data and instructions from, and transmitting data and instructions to, a storage system, at least one input device, and at least one output device.
These computer programs (also known as programs, software applications, or code) include machine instructions for a programmable processor, and may be implemented using high-level procedural and/or object-oriented programming languages, and/or assembly/machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus, and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to a user; and a keyboard and a pointing device (e.g., a mouse or a trackball) by which a user can provide input to the computer. Other kinds of devices may also be used to provide for interaction with a user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including acoustic, speech, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: local Area Networks (LANs), Wide Area Networks (WANs), and the Internet.
The computer system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units described in the embodiments of the present application may be implemented by software or hardware. The described units may also be provided in a processor, and may be described as: a processor includes an acquisition unit, a matching unit, and a pushing unit. Where the names of the units do not in some cases constitute a limitation of the units themselves, for example, the retrieving unit may also be described as a "unit that retrieves a plurality of push tasks indicating to push messages to clients, and issues tokens in a token bucket to the plurality of push tasks, respectively".
As another aspect, the present application also provides a computer-readable medium, which may be contained in the apparatus described in the above embodiments; or may be present separately and not assembled into the device. The computer readable medium carries one or more programs which, when executed by the apparatus, cause the apparatus to: the method comprises the steps of obtaining a plurality of pushing tasks used for indicating to push messages to a client, and respectively issuing tokens in a token bucket to the pushing tasks, wherein the tokens indicate that the pushing tasks are to be executed; and (3) executing a matching step: for a push task in the multiple push tasks, matching relevant information of the push task with a preset push condition of the push task, and returning a token corresponding to the push task of which the relevant information is not matched with the preset push condition to the token bucket; and executing the push tasks with the corresponding tokens still remained in the plurality of push tasks.
The above description is only a preferred embodiment of the application and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the invention herein disclosed is not limited to the particular combination of features described above, but also encompasses other arrangements formed by any combination of the above features or their equivalents without departing from the spirit of the invention. For example, the above features may be replaced with (but not limited to) features having similar functions disclosed in the present application.

Claims (16)

1. A message pushing method is used for a server side, and the method comprises the following steps:
the method comprises the steps of obtaining a plurality of pushing tasks used for indicating to push messages to a client, and respectively issuing tokens in a token bucket to the pushing tasks, wherein the tokens indicate that the pushing tasks are to be executed;
and (3) executing a matching step: for a push task in the multiple push tasks, matching relevant information of the push task with a preset push condition of the push task, and returning a token corresponding to the push task of which the relevant information is not matched with the preset push condition to the token bucket;
and executing the push tasks with the corresponding tokens still remained in the plurality of push tasks.
2. The method of claim 1, wherein the issuing of the tokens in the token bucket to the clients corresponding to the plurality of push tasks, respectively, and the performing the matching step are completed within one token issuing cycle.
3. The method of claim 1, wherein the matching the related information of the push task with the preset push condition of the push task comprises:
under the condition that the number of the preset pushing conditions of the pushing task is at least two, in response to the fact that the relevant information of the pushing task is matched with the current preset pushing condition, matching the matched relevant information of the pushing task with the next preset pushing condition;
and in response to determining that the push task is not matched with the current preset push condition, stopping the matching process, and determining that the relevant information of the push task is not matched with the preset push condition.
4. The method of claim 1, wherein the method further comprises:
and executing a connecting step: responding to a connection establishment request sent by a client, establishing communication connection with the client, and acquiring an online event message of the client;
executing an adding step: adding the online event message of the client into a message set;
and (3) executing a pulling step: and pulling the online event message from the message set, and determining the plurality of pushing tasks corresponding to the plurality of online event messages in the pulled online event message.
5. The method of claim 4, wherein the server comprises a first server, a second server, and a third server, the message set is a first-in-first-out message queue, the connecting step is performed by the first server, the joining step is performed by the second server, and the pulling step is performed by the third server.
6. The method of claim 4, wherein the determining the plurality of push tasks corresponding to a plurality of pull online event messages comprises:
determining a plurality of pull online event messages in the pulled online event messages based on at least one of the following screening conditions: the time length of the online time corresponding to the online event message is not more than the preset time length from the current time length, the client corresponding to the online event message is not pushed by the pushing task within the preset time length, and whether the task generating switch is turned on or not is judged.
7. The method of claim 6, wherein the determining the plurality of push tasks corresponding to a plurality of pull online event messages further comprises:
and determining a plurality of pushing tasks corresponding to the plurality of online event messages through the type identifications of the clients corresponding to the online event messages, wherein each type identification has a corresponding pushing task.
8. The method according to claim 1, wherein the preset push condition includes at least one of the following corresponding to a push task: the method comprises the following steps of flow domain name conditions, client downloading channel conditions, client version conditions, equipment identification grouping conditions, equipment identification conditions, pushing time period range conditions, prefix and equipment identification conditions and user time interval conditions.
9. The method according to claim 1 or 8, wherein the preset push condition comprises a traffic domain name condition corresponding to a push task;
the matching of the relevant information of the push task and the preset push condition of the push task includes:
determining a traffic domain name corresponding to a push task in the plurality of push tasks, wherein each traffic domain name has a corresponding traffic peak threshold;
predicting a flow peak value of a pushing task to be pushed by using a flow domain indicated by a flow domain name corresponding to the pushing task, wherein a token corresponding to the pushing task participating in prediction exists;
and if the predicted flow peak value does not exceed the flow peak value threshold value, determining that the relevant information of the push task is matched with the flow domain name condition of the push task.
10. The method of claim 1 or 8,
and under the condition that the preset pushing condition comprises the time interval of the user corresponding to the pushing task, responding to that the number of the same pushing tasks corresponding to the same client is at least two, wherein the number of the tokens reserved in the same pushing task is one.
11. The method according to claim 1 or 8, wherein the preset push condition comprises a device identification grouping condition corresponding to a push task;
the matching of the relevant information of the push task and the preset push condition of the push task includes:
determining the equipment identifier of the client indicated by the push task, wherein the equipment identifier is a number;
the device identification is subjected to complementation to obtain a remainder corresponding to the pushing task, the remainder is divided into a remainder value group corresponding to the number value of the remainder, and the remainder value group is used as a target remainder value group;
determining whether the target remainder value set is included in preset remainder value sets of the pushing task, wherein the number of the preset remainder value sets is at least one;
and if the target remainder value group is determined to be included, determining that the relevant information of the push task is matched with the equipment identification grouping condition of the push task.
12. The method according to claim 1 or 8, wherein the preset push condition includes a prefix and device identification condition corresponding to a push task;
the matching of the relevant information of the push task and the preset push condition of the push task includes:
determining a prefix field of the push task, combining the prefix field with the equipment identifier of the push task to obtain a prefix identifier combination, and taking the prefix identifier combination as a target prefix identifier combination;
searching whether the target prefix identification combination exists in a preset prefix identification set corresponding to the push task;
and if the push task is found, determining that the relevant information of the push task is matched with the task prefix and equipment identification condition of the push task.
13. The method of claim 1 or 8, wherein the preset push condition further comprises a preset push number;
the matching of the relevant information of the push task and the preset push condition of the push task further comprises:
judging whether the number of the matched push tasks exceeds the preset push number or not;
if the preset pushing quantity is exceeded, determining a target pushing task which accords with the preset pushing quantity from the currently matched pushing tasks, and determining that the relevant information of the target pushing task is matched with the preset pushing quantity corresponding to the target pushing task; and if the preset pushing quantity is not exceeded, directly determining that the relevant information of the currently matched pushing task is matched with the preset pushing quantity of the pushing task.
14. The method according to claim 1 or 8, wherein the preset push condition further includes a limited number of tasks corresponding to the push task, and the matching of the relevant information of the push task with the preset push condition of the push task further includes:
judging whether the push tasks which exist in the matched push tasks and reach the limited number of the tasks exist or not;
and if the judgment result is yes, determining that the judged related information of the pushing task is not matched with the limited quantity of the tasks of the pushing task.
15. An electronic device, comprising:
one or more processors;
a storage device for storing one or more programs,
when executed by the one or more processors, cause the one or more processors to implement the method of any one of claims 1-14.
16. A computer-readable storage medium, on which a computer program is stored, which program, when being executed by a processor, carries out the method according to any one of claims 1-14.
CN202011169087.7A 2020-10-28 2020-10-28 Message pushing method and device Active CN112311597B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011169087.7A CN112311597B (en) 2020-10-28 2020-10-28 Message pushing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011169087.7A CN112311597B (en) 2020-10-28 2020-10-28 Message pushing method and device

Publications (2)

Publication Number Publication Date
CN112311597A true CN112311597A (en) 2021-02-02
CN112311597B CN112311597B (en) 2023-01-31

Family

ID=74332136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011169087.7A Active CN112311597B (en) 2020-10-28 2020-10-28 Message pushing method and device

Country Status (1)

Country Link
CN (1) CN112311597B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114650318A (en) * 2022-02-24 2022-06-21 阿里巴巴(中国)有限公司 Switch pushing method
CN115378878A (en) * 2021-05-21 2022-11-22 北京字跳网络技术有限公司 CDN scheduling method, device, equipment and storage medium
CN116384956A (en) * 2023-06-05 2023-07-04 天津金城银行股份有限公司 Message batch sending method, device, equipment and storage medium

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104735150A (en) * 2015-03-27 2015-06-24 努比亚技术有限公司 Message pushing method and device
CN106233674A (en) * 2014-04-14 2016-12-14 微软技术许可有限责任公司 The battery-efficient using the communication of token bucket synchronizes
CN107395670A (en) * 2017-06-08 2017-11-24 百度在线网络技术(北京)有限公司 Information push method, device, equipment and computer-readable recording medium
CN107426322A (en) * 2017-07-31 2017-12-01 深圳市金立通信设备有限公司 A kind of PUSH message target matching method, server, terminal and computer-readable recording medium
CN109196834A (en) * 2016-06-03 2019-01-11 维萨国际服务协会 Sub- token management system for connected device
CN110247857A (en) * 2019-05-22 2019-09-17 钛马信息网络技术有限公司 Current-limiting method and device
CN110300050A (en) * 2019-05-23 2019-10-01 中国平安人寿保险股份有限公司 Information push method, device, computer equipment and storage medium
CN110381100A (en) * 2018-04-13 2019-10-25 佛山市顺德区美的电热电器制造有限公司 A kind of information push method, server and computer readable storage medium
CN111585913A (en) * 2020-04-30 2020-08-25 武汉众邦银行股份有限公司 Service flow limiting method based on recovery token and storage medium

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106233674A (en) * 2014-04-14 2016-12-14 微软技术许可有限责任公司 The battery-efficient using the communication of token bucket synchronizes
CN104735150A (en) * 2015-03-27 2015-06-24 努比亚技术有限公司 Message pushing method and device
CN109196834A (en) * 2016-06-03 2019-01-11 维萨国际服务协会 Sub- token management system for connected device
CN107395670A (en) * 2017-06-08 2017-11-24 百度在线网络技术(北京)有限公司 Information push method, device, equipment and computer-readable recording medium
CN107426322A (en) * 2017-07-31 2017-12-01 深圳市金立通信设备有限公司 A kind of PUSH message target matching method, server, terminal and computer-readable recording medium
CN110381100A (en) * 2018-04-13 2019-10-25 佛山市顺德区美的电热电器制造有限公司 A kind of information push method, server and computer readable storage medium
CN110247857A (en) * 2019-05-22 2019-09-17 钛马信息网络技术有限公司 Current-limiting method and device
CN110300050A (en) * 2019-05-23 2019-10-01 中国平安人寿保险股份有限公司 Information push method, device, computer equipment and storage medium
CN111585913A (en) * 2020-04-30 2020-08-25 武汉众邦银行股份有限公司 Service flow limiting method based on recovery token and storage medium

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115378878A (en) * 2021-05-21 2022-11-22 北京字跳网络技术有限公司 CDN scheduling method, device, equipment and storage medium
CN115378878B (en) * 2021-05-21 2023-11-14 北京字跳网络技术有限公司 CDN scheduling method, device, equipment and storage medium
CN114650318A (en) * 2022-02-24 2022-06-21 阿里巴巴(中国)有限公司 Switch pushing method
CN114650318B (en) * 2022-02-24 2024-04-19 阿里巴巴(中国)有限公司 Switch pushing method
CN116384956A (en) * 2023-06-05 2023-07-04 天津金城银行股份有限公司 Message batch sending method, device, equipment and storage medium
CN116384956B (en) * 2023-06-05 2023-08-15 天津金城银行股份有限公司 Message batch sending method, device, equipment and storage medium

Also Published As

Publication number Publication date
CN112311597B (en) 2023-01-31

Similar Documents

Publication Publication Date Title
CN112311597B (en) Message pushing method and device
CN111831420B (en) Method for task scheduling, related device and computer program product
CN112437018A (en) Flow control method, device, equipment and storage medium for distributed cluster
CN111694646A (en) Resource scheduling method and device, electronic equipment and computer readable storage medium
CN111586128A (en) Method, device and equipment for acquiring applet data and storage medium
CN111913884A (en) Distributed test method, device, equipment, system and readable storage medium
CN111459645B (en) Task scheduling method and device and electronic equipment
CN112561332B (en) Model management method, device, electronic equipment, storage medium and program product
CN110958250B (en) Port monitoring method and device and electronic equipment
CN111865720A (en) Method, apparatus, device and storage medium for processing request
CN111787088A (en) Method and device for processing applet data
CN108764866B (en) Method and equipment for allocating resources and drawing resources
CN112069137B (en) Method, device, electronic equipment and computer readable storage medium for generating information
CN110750419B (en) Offline task processing method and device, electronic equipment and storage medium
CN110659184B (en) Health state checking method, device and system
CN111368184A (en) Screen saver release method and device for intelligent voice device and storage medium
CN111770165A (en) Method and device for uploading files, electronic equipment and readable storage medium
CN111597026B (en) Method and device for acquiring information
CN111597461B (en) Target object aggregation prediction method and device and electronic equipment
CN111683140B (en) Method and apparatus for distributing messages
CN112752323A (en) Method and device for changing hotspot access state
CN112770415A (en) Information processing method and device about wireless hotspot
CN113572704A (en) Information processing method, production end, consumption end and server
CN113127512B (en) Multi-data stream data splicing triggering method and device, electronic equipment and medium
CN115277713A (en) Load balancing method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant