A user matching method, system, electronic device and storage medium
By combining active, passive, and scheduled matching methods, the problem of user matching failures in social applications was solved, the matching success rate and speed were improved, and the user experience was optimized.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-29
- Publication Date
- 2026-03-20
AI Technical Summary
Existing user matching methods in social applications result in poor user experience when they cannot find suitable social partners within a user group, and locking the matching range affects the overall matching speed and success rate.
A combination of active matching, passive matching, and scheduled matching is used. New users first actively match in the matching pool. If no match is found, they are marked as passively matched and wait. After the waiting time reaches a preset period, they switch to scheduled matching and iterate through the online scheduled pool to find social objects.
It improves matching success rate and speed, makes full use of current matching pool resources, reduces duplicate matching processing, compensates for new users by waiting, and expands the matching range to improve success rate.
Smart Images

Figure CN116450953B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of Internet application, in particular to a user matching method and system, electronic equipment and storage medium. BACKGROUND
[0002] With the development of Internet application technology, as an important tool for people to communicate with each other, share information and establish relationships, various social applications and social platforms play an important role in people's life and work. In order to meet various social needs, different social applications and social platforms have their own characteristics, for example, people can share photos, videos, status updates and chat with family and friends through social applications and social platforms; or post various messages such as real-time news reports, network hotspots, trends and entertainment. In order to improve the social pleasure, some social applications or social platforms also provide interesting filters and special effects, allowing users to add text, insert drawings and stickers.
[0003] With the progress of technology and the change of people's concept, the scope of people's socialization has gradually shifted from acquaintances to strangers. For a social application or social platform, the number of users online at the same time can be large, that is, many users can become a user's social object. Therefore, whether the user can be efficiently and high-quality matched with a social object has become an important indicator to measure the social experience. The current method for matching users with social objects is usually to match a user with a social object in a user group according to the user's set interests and hobbies. However, in the existing matching method, when a suitable social object cannot be matched in a user group according to the user's set conditions, the user can only passively wait, resulting in poor user experience; and in order to achieve matching accuracy, the matching range is locked in the matching process, that is, the user group is locked. However, due to the locking of the matching range, new users who meet the matching requirements cannot enter the matching range during the matching process, although accurate matching is achieved in a small range, but at the same time, the overall matching speed and matching success rate are affected. SUMMARY
[0004] In view of the technical problems existing in the prior art, the present application provides a user matching method, system, electronic equipment and storage medium to improve the matching success rate and matching speed when matching a user with a social object.
[0005] To solve the above technical problems, according to one aspect of the present application, the present application provides a user matching method, comprising the following steps: performing a traversal matching process to match a new user in a matching pool with a social object; in response to no social object being matched for the new user, marking the new user as a passive matching user and waiting to be matched by a new user in a matching pool, while timing a waiting matching time for the passive matching user; in response to the timing of the waiting matching time for the passive matching user reaching a preset timing period and no new user in the matching pool being matched, marking the passive matching user as a scheduled matching user; and performing a traversal matching process to match the scheduled matching user with a social object in an online scheduled pool.
[0006] To solve the above technical problems, according to another aspect of the present application, the present application further provides a user matching system, comprising an active matching module, a waiting matching module and a scheduled matching module, the active matching module is configured to perform a traversal matching process to match a new user in a matching pool with a social object; the waiting matching module is connected to the active matching module and is configured to mark the new user without being matched with a social object as a passive matching user and wait to be matched by a new user, while timing a waiting time for the passive matching user; in response to the timing of the waiting time for the passive matching user reaching a preset timing period and no new user in the matching pool being matched, marking the passive matching user as a scheduled matching user; the scheduled matching module is connected to the waiting matching module and is configured to perform a traversal matching process to match the scheduled matching user with a social object in an online scheduled pool.
[0007] To solve the above technical problems, according to another aspect of the present application, the present application further provides an electronic device comprising a processor and a memory, the memory stores a set of program instructions, and the processor executes the set of program instructions to implement the aforementioned user matching method.
[0008] To solve the above technical problems, according to another aspect of the present application, the present application further provides a computer readable storage medium storing a set of program instructions, and the set of program instructions is executed by a processor to implement the aforementioned user matching method.
[0009] To solve the above technical problems, according to another aspect of the present application, the present application further provides a computer program product comprising a set of program instructions, and the set of program instructions is executed by a processor to implement the aforementioned user matching method.
[0010] The application can make full use of the current user resources in the matching pool to quickly find a user who meets the matching condition set by the new user as a social object when the new user just joins the matching pool. When the active matching does not match a social object for the new user, the new user waits to be matched by other new users, which reduces the repeated matching process and saves resources. Since the users in the matching pool are dynamically changing, the new user can also make up for the missed new users by waiting to be matched, further improving the matching success rate. In order to not affect the matching speed, the waiting time is timed. If a social object is not matched after timing, the matching range is changed, and the users in the online scheduling pool are traversed to match a social object for the new user. In one embodiment, the users in the online scheduling pool are full users, so the matching range is large, further improving the matching success rate. BRIEF DESCRIPTION OF DRAWINGS
[0011] In the following, the preferred embodiments of the application will be further described in detail with reference to the accompanying drawings, in which:
[0012] Figure 1 is a block diagram of a social application system applying the user matching method according to one embodiment of the application;
[0013] Figure 2 is a flowchart of the user matching method according to one embodiment of the application;
[0014] Figure 3 is a flowchart of the process of traversing the users in the matching pool to match a social object for a new user according to one embodiment of the application;
[0015] Figure 4 is a flowchart of the process of executing the traversal matching process according to one embodiment of the application;
[0016] Figure 5 is a flowchart of the scheduling matching process according to one embodiment of the application;
[0017] Figure 6 is a flowchart of matching a social object for a scheduling matching user according to one embodiment of the application;
[0018] Figure 7 is a principle block diagram of a user matching system according to one embodiment of the application;
[0019] Figure 8 is a principle block diagram of a system for performing active matching in a user matching system according to one embodiment of the application; and
[0020] Figure 9 is a principle block diagram of a scheduling matching module in a user matching system according to another embodiment of the application. DETAILED DESCRIPTION
[0021] In order to make the objects, technical solutions and advantages of the embodiments of the present application clearer, the following will be combined with the accompanying drawings for clear and complete description of the technical solutions in the embodiments of the present application. Obviously, the described embodiments are a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the protection scope of the present application.
[0022] In the following detailed description, reference can be made to the various drawings that illustrate specific embodiments of the application. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The embodiments of method of the present application, as generally described and illustrated in the figures herein, gather together strangers by matching them with each other based on their matching conditions.
[0023] The present application provides a user matching method, which can quickly and accurately match a user to a social object according to the matching conditions set by the user, so as to establish a social connection between strangers. Figure 1is a social application system block diagram according to an embodiment of the present application, which applies the user matching method of the present application. The social application system of the present embodiment comprises a client and a server, the client runs in a user terminal device 21, and the server comprises a server 10 and a database 30 and the like. The client running in the user terminal device 21 provides an operation interface for the user, and provides an option of whether to match with strangers and a setting option of matching conditions. When the user sets the matching conditions and clicks the active matching option, the client sends a matching request of the user to the server. The database 30 of the server stores not only the conventional user data and business data, but also two user groups, which are named as a matching pool 31 and an online dispatch pool 32 respectively. The server 10 of the server comprises a user matching system, which, after receiving the matching request sent by the client, adds the user sending the matching request as a new user to the matching pool 31, and saves the matching condition parameters. The user matching system in the server 10 executes a matching process to traverse the users in the matching pool 31 according to the matching condition parameters set by the user to match a social object for the new user, and when a social object is matched for the new user, removes the user and the social object from the matching pool 31. When a social object is not matched for the new user, marks the identity of the new user as a passive matching user, and waits to be matched by other new users, while timing the waiting time of the new user. When the preset timing period is reached and the new user is not matched by other new users as a social object, marks the identity of the new user as a dispatch matching user. The user matching system in the server 10 executes a matching process to traverse the users in the online dispatch pool 32 to match a social object for the new user. The user matching system in the server 10 executes a matching process to traverse the users in the matching pool 31 to match a social object for the new user in a concurrent processing mode, which can execute multiple matching processes to match social objects for multiple new users at the same time.
[0024] Figure 2 is a user matching method flow chart according to an embodiment of the present application, which matches a new user with a social object. The method is applied to a server, and comprises the following steps:
[0025] Step S101, monitor whether a new user is added to the matching pool, and if a new user is added to the matching pool, execute step S102, and if not, return to step S101.
[0026] Step S102, determine the new user as a target user, and execute a matching process to traverse the users in the matching pool to match a social object for the target user.
[0027] Step S103, judge whether a social object is matched for the target user, and if yes, end the matching process for the target user, and transfer to an active matching success processing system to perform corresponding processing. If not, execute step S104.
[0028] Step S104: Mark the target user as a passive matching user, wait to be matched by other new users, and start timing the waiting time of the target user as a passive matching user.
[0029] Step S105: Monitor whether a social match is found within the time period. If a social match is found within the time period, the matching process for the target user ends, and the process is transferred to the proactive matching success processing system for appropriate processing. If no social match is found within the time period, proceed to step S106.
[0030] Step S106: Mark the target user as a scheduling matching user.
[0031] Step S107: Execute the traversal matching process to traverse the users in the online scheduling pool and match social objects for the target user.
[0032] Step S108: Determine whether a social object has been matched for the target user. If a match is found, proceed to the matching success processing system for further processing and end the matching process for the target user. If no social object has been matched for the target user, end the matching process for the target user and proceed to the matching failure processing system for further processing.
[0033] After the above matching process, when a user is first added to the matching pool, an active match is performed on them, iterating through other users in the pool. This fully utilizes the current user resources in the matching pool, quickly finding users who match their set criteria as social partners. If no social partner is found during the active match, the user waits to be matched by other new users. This reduces redundant matching processes, saves resources, and, since the users in the matching pool are dynamically changing, waiting to be matched can compensate for any missed new users, further improving the matching success rate. To avoid affecting the matching speed, a timer is used to track the waiting period. If no social partner is found after the timer expires, the matching scope is changed, iterating through users in the online scheduling pool to find a social partner. In one embodiment, the online scheduling pool contains all users, resulting in a large matching scope and further improving the matching success rate.
[0034] In one embodiment, the matching pool includes multiple independent sub-pools, each corresponding to a specific matching attribute, such as gender, age, region, interests, etc. In one embodiment, the matching pool includes a male pool and a female pool categorized by gender. In another embodiment, the matching pool includes a North American pool, an Asian pool, a European pool, an Australian pool, etc. When the server receives a matching request, it adds the user who sent the request to the corresponding independent sub-pool based on the matching attributes specified in the request. Alternatively, the server determines the matching attributes based on the user data that sent the matching request. For example, if the user sending the matching request is male, he / she is added to the male pool, and the female pool is given a higher matching priority than the male pool.
[0035] Figure 3 This is a flowchart illustrating the process of matching new users with social partners by traversing a matching pool of users according to an embodiment of the present invention. In this embodiment, the matching pool includes a male pool and a female pool, categorized by gender.
[0036] Step S201: Based on the matching attributes determined from the user data that sent the matching request, the user is added to an independent sub-pool within the matching pool. In this embodiment, when the target user is a male user, he / she is added to the male pool.
[0037] Step S202: Determine the independent sub-pool whose attributes match those of the target user as the target independent sub-pool. In this embodiment, the female pool and the male pool are a set of matching pools with matching attributes. After the target male user is determined, the female pool is used as the target independent sub-pool for matching social objects, or both the female pool and the male pool are used as target independent sub-pools. In this case, the matching priority of the female pool is higher than that of the male pool.
[0038] Step S203: Execute the traversal matching process to traverse the users in the target independent sub-pool and match them with social partners. This involves calculating the matching criteria for each user in the female pool against the matching criteria for the target male user.
[0039] Step S204: Determine whether a social match has been found for the target user. If a match is found, the matching process for that target user ends, and the process is transferred to the proactive matching success processing system for further processing. If no social match is found, proceed to step S205.
[0040] Step S205: Mark the target user as a passive matching user and wait to be matched by a new user in the target independent sub-pool, while timing the waiting time. In this embodiment, when actively matching the target male user with each user in the female pool without finding a match, the matching stops, and the user waits to be matched by a user in the female pool.
[0041] Step S206, whether the social object is matched in the timing period, if the social object is matched in the timing period, the matching process of the target user is ended, and the active matching success processing system is entered to perform corresponding processing. If the social object is not matched in the timing period, step S207 is performed.
[0042] Step S207, whether there is a target independent sub-pool to be matched, if yes, step S202 is returned to determine a new target independent sub-pool. At this time, the target user is a new user for the new target independent sub-pool. In the embodiment, when the female social object is not actively matched for the target male user in the female pool, and the target male user is not matched by the user in the female pool, the male pool is taken as a new target independent sub-pool. If there is no independent sub-pool to be matched, the target user is marked as a dispatch matching user in step S208.
[0043] Step S209, a traversal matching process is performed to match the social object for the target user in the online dispatch pool.
[0044] Step S210, whether the social object is matched for the target user, if yes, the dispatch matching success processing system is entered to perform processing, and the matching process of the target user is ended. If the social object is not matched for the target user, the matching process of the target user is ended, and the un-matching success processing system is entered to perform processing.
[0045] In an optional step, when determining the independent sub-pool matching the attribute of the target user in step S202, if multiple independent sub-pools can be target independent sub-pools, for example, in the embodiment, according to the matching attribute of the independent sub-pool, it is determined that the female pool and the male pool can be target independent sub-pools, at this time, the matching priority of multiple available target independent sub-pools can be determined according to the matching attribute. For example, when determining the target independent sub-pool for matching for a user, the opposite sex is preferred, that is, when determining the target independent sub-pool for matching for the target male user in the embodiment, the female pool and the male pool can be target independent sub-pools, but the matching priority of the female pool is higher than that of the male pool, at this time, the matching starts from the female pool with the highest matching priority, and when there is no successful matching in the female pool, the male pool is matched. In an embodiment, when changing the target independent sub-pool for a target user, a change target independent sub-pool notification can be sent to the client of the target user, and the client of the target user displays the change target independent sub-pool notification in the interface. When the target user clicks the confirmation button, the client returns the confirmation information of the change target independent sub-pool to the server, and the server receives the message and changes the target independent sub-pool for the target user, so that the target user continues to execute the traversal matching process as a new user of the new target independent sub-pool, and matches a social object for the target user.
[0046] Figure 4 is a flowchart of the traversal matching process according to an embodiment of the present application, which is suitable for the traversal matching process described in the foregoing Figure 2 and Figure 3 The traversal matching process in the embodiment includes the following steps:
[0047] Step S301: Determine a user in the target pool as a matching object of a target user. The target pool is a matching pool, a target independent sub-pool, or an online scheduling pool, and the target user is a new user, a passive matching user, or a scheduling matching user.
[0048] Step S302: Calculate the matching value of the target user and the matching object. For example, read the matching parameters set by the target user and the matching object respectively, and calculate the similarity value of the two. For example, convert the words in the matching parameters into word vectors by using the Word2Vec algorithm, compare the differences between the word vectors, and take the difference value of the word vectors as the similarity value of the two.
[0049] Step S303: Determine whether the matching value of the target user and the matching object meets the matching requirement. If it meets, it is determined that a social object is matched, and step S304 is executed. If it does not meet, step S305 is executed. For example, when the difference value of the two word vectors is less than or equal to a threshold value, it is considered to meet the matching requirement, and if it is greater than the threshold value, it is considered to not meet the matching requirement.
[0050] Step S304, determine whether the matching object is occupied, i.e. whether the user as a social object is occupied. If occupied, execute step S305, if not occupied, execute step S306.
[0051] Step S305, determine whether there is still a user in the target pool that can be used as a matching object. If yes, return to step S301, if not, determine that the matching is unsuccessful at step S309, and end the matching process if no social object is matched for the target user in the target pool.
[0052] Step S306, mark the state of the matching object as occupied.
[0053] Step S307, determine whether the matching object is online. If online, determine that the matching is successful at step S308, remove the target user and the matching object from the target pool and complete the matching, and end the matching process. If the matching object is not online, abandon the matching object, and execute step S305.
[0054] In one embodiment, the client sends a heartbeat message to the server at a certain time during its life to indicate that it is currently online. Correspondingly, in step S307, the server detects the heartbeat message of the client of the matching object, and determines whether the heartbeat message sent by the client of the matching object is received within a preset time period. If the heartbeat message sent by the client is received within the preset time period, it is determined that the user is online. The heartbeat message is any data sent by the client at a certain frequency, such as a binary data representing 0 sent every second.
[0055] In order to improve the matching efficiency and fully utilize the performance of the server device, the server concurrently executes Figure 4 The traversal matching process shown in the figure simultaneously matches social objects for multiple target users. In order to average the possibility of matching for each user in the target pool, when each traversal matching process determines a matching object for a target user, a user is randomly selected from the target pool as the matching object, instead of selecting the matching object according to the storage order of the users in the target pool, thereby avoiding the situation that when there are multiple users that meet the matching conditions but have different storage orders, the user with the storage order in the front is matched due to the same matching order and storage order, and the user with the storage order in the back is ignored.
[0056] When the number of users in the target pool is large, the server concurrently executes Figure 4The shown traversal matching process groups the users in the target pool, such as randomly into N user groups, before matching the target user with social objects. When traversing the users in the target pool, each user in each user group is traversed to match the target user with social objects. When multiple traversal matching processes are concurrently executed, each traversal matching process randomly selects a user group and a user in the user group, which reduces the probability of matching conflicts and averages the possibility of each user in the target pool being matched.
[0057] In another embodiment, the server maintains a dispatch queue in which users marked as dispatch matching users are stored. To solve the problem that there are too many dispatch matching users and even if concurrent tasks are started, the traversal matching process cannot be immediately executed for all dispatch matching users, this embodiment selects a certain number of dispatch matching users from the dispatch queue at a time and executes multiple traversal matching processes in parallel. To determine the dispatch matching users selected each time, in this embodiment, when a passive matching user is marked as a dispatch matching user, the dispatch order of the dispatch matching user is calculated according to a preset dispatch processing strategy, and the dispatch matching user is added to the dispatch queue according to the dispatch order. When a certain number of dispatch matching users are selected from the dispatch queue, a predetermined number (such as one or more) of dispatch matching users with a high order are selected from the dispatch queue, and the traversal matching process is executed to traverse the users in the online dispatch pool to match the selected dispatch matching users with social objects.
[0058] In one embodiment, multiple dispatch factors are set in the dispatch processing strategy, and corresponding weights are set for the dispatch factors. The weighted values of all dispatch factors are calculated as the dispatch order. The dispatch factors are, for example, join time, user level, and the like.
[0059] When there are too many dispatch matching users, to avoid the dispatch matching users waiting for too long and affecting the experience of the users, this embodiment starts timing when the dispatch matching users are added to the dispatch queue, which is used to count the dispatch matching time. When the dispatch matching time reaches a preset timing period and the social objects are still not matched, the dispatch matching user is removed from the dispatch queue, and the matching process for matching the social objects for the dispatch matching user is ended.
[0060] In the traversal of the users in the online dispatch pool to match the selected dispatch matching users with social objects, the users in the online dispatch pool can be grouped, and a user group is randomly selected to execute the traversal matching process when matching the social objects. When the traversal matching process is executed for a user group, a user in the user group is randomly selected as a matching object. When all user groups are matched and the preset timing period is still not reached, the user is returned to the dispatch queue.
[0061] Figure 5 is a flowchart of a dispatch matching process according to one embodiment of the present application.
[0062] Step S401, divide the users in the online dispatch pool into multiple user groups.
[0063] Step S402, select a predetermined number of dispatch matched users in order from the dispatch queue.
[0064] Step S403, concurrently run n traversal matching processes to match social objects for n dispatch matched users. The process of matching social objects for each dispatch matched user is the same, as shown in Figure 6 For example, the process of matching social objects for dispatch matched user User1 is as follows:
[0065] Step S4031, randomly select a user group as a target user group.
[0066] Step S4032, randomly select a user in the target user group as a matching object.
[0067] Step S4033, calculate the matching value of dispatch matched user User1 and the matching object. This specifically includes reading the matching condition parameters set by dispatch matched user User1 and the matching object respectively, and calculating the similarity value of the two.
[0068] Step S4034, determine whether the matching value of dispatch matched user User1 and the matching object meets the matching requirement. If yes, determine that a social object is matched, and execute step S4035. If no, execute step S4036.
[0069] Step S4035, determine whether the matching object is occupied. If yes, execute step S4036. If no, execute step S4037.
[0070] Step S4036, determine whether there are still users in the target user group that can be used as matching objects. If yes, return to step S4032. If no, determine in step S4040 whether there are still other user groups that can be used as target user groups. If yes, return to step S4031 to randomly select another user group as a target user group. If no, determine in step S4041 whether the waiting dispatch matching time of dispatch matched user User1 has reached the preset timing period. If yes or exceeded, determine in step S4042 that the matching fails, remove dispatch matched user User1 from the dispatch queue, exit the matching process, and end. If the dispatch matching time of dispatch matched user User1 has not reached the preset timing period, execute step S4043 to re-add dispatch matched user User1 to the dispatch queue, and wait to be selected from the dispatch queue for dispatch matching next time.
[0071] Step S4037, mark the state of the matching object as occupied.
[0072] Step S4038, determine whether the matching object is online. If yes, then determine that the matching is successful in step S4039, remove the dispatching matching user from the dispatching queue, and end the matching process. If the matching object is not online, then abandon the matching object, and execute step S4036.
[0073] In one embodiment, after determining that the matching is successful in step S4039, the matching object and the matching time are also recorded, which are used as the basis data for subsequent calculation of the hit rate of the user and other processing procedures.
[0074] In the matching process shown in the foregoing Figures 2 to 5 In the matching process shown in the foregoing
[0075] After successfully matching the dispatching matching user (referred to as the first user) to the social object (or referred to as the second user), the user matching process is completed, and the dispatching matching success processing system is entered for corresponding processing. In one embodiment, the dispatching matching success processing system sends a matching success notification to the first user and the second user, and the information that the user is willing to show, such as the nickname, personal image, etc., is included in the notification. The client of the second user sends a pop-up message in the client interface after receiving the matching success notification, and the pop-up message at least includes the invitation information of the social object, which includes the nickname, personal image, etc. When the second user accepts the invitation, the server establishes a chat connection channel between the two, and maintains the smoothness of the chat connection channel during the conversation between the two. Since the second user is a user outside the matching pool, that is, the second user is a user who does not send an active matching request. Therefore, in order to avoid the second user from being frequently matched by other users and frequently receiving pop-up messages to cause interference, in a further embodiment, before sending the matching success notification to the client of the second user, the matching frequency of the second user is calculated based on the hit data. When the calculated matching frequency exceeds a certain threshold, in order not to interfere with the second user, the matching success notification is not sent to the second user, and the matching failure notification is sent to the first user. The client of the first user receives the notification and provides the option of matching strangers and the setting option of matching conditions.
[0076] When none of the active matching, passive matching and dispatch matching results in a social object for a user, it is determined that the matching fails, and the matching failure processing system processes according to the matching failure processing flow. In one embodiment, a matching failure notification is sent to the user, and the user is provided with an option to match strangers and an option to set matching conditions on the client interface. When the user re-sets the matching conditions and clicks the active matching option, the client sends a matching request of the user to the server, and the server re-joins the user as a new user into the matching pool for a new round of matching. When a user cancels the matching during the matching process, the ongoing matching flow is ended, and the user is removed from the matching pool.
[0077] According to another aspect of the present application, the present application also provides a user matching system applied to a server, as shown in Figure 7 Figure 7 is a principle block diagram of a user matching system according to one embodiment of the present application, the user matching system 11 is connected with a matching post-processing system 40, the user matching system 11 includes an active matching module 110, a waiting matching module 120 and a dispatch matching module 130, the matching post-processing system 40 includes an active matching success processing system 41, a dispatch matching success processing system 42 and a matching failure processing system 43. The active matching module 110 is configured to perform a traversal matching flow to match a social object for a new user in the matching pool 31, and after successfully matching a social object for the new user or a passive matching user, the active matching module 110 is transferred to the active matching success processing system 41 for corresponding processing. The waiting matching module 120 is connected with the active matching module 110 and is configured to mark a new user who has not matched a social object as a passive matching user and wait to be matched by a new user, and at the same time, the waiting time of the passive matching user is counted. When the waiting time of the passive matching user reaches a preset counting period and the passive matching user has not been matched by another new user as a social object, the passive matching user is marked as a dispatch matching user. The dispatch matching module 130 is connected with the waiting matching module 120 and is configured to perform a traversal matching flow to match a social object for a dispatch matching user in the online dispatch pool 32. The dispatch matching module 130 is transferred to the dispatch matching success processing system 42 for corresponding processing after successfully matching a social object for the dispatch matching user, and is transferred to the matching failure processing system 43 for corresponding processing when the dispatch matching module 130 fails to successfully match a social object for the dispatch matching user.
[0078] Figure 8 This is a system principle block diagram of an active matching system in a user matching system according to another embodiment of the present invention. In this embodiment, the matching pool 31 includes multiple independent sub-pools, such as the first independent sub-pool 311, the second independent sub-pool 312, etc., as shown in the figure. When a new user joins the matching pool 31, they are added to at least one independent sub-pool. The matching attributes of each independent sub-pool are adapted to the matching attributes of one or more independent sub-pools therein. Therefore, when matching a user in an independent sub-pool, there can be one or more target independent sub-pools for matching with them. The active matching module 110 in this embodiment can concurrently execute a traversal matching process to match social objects for multiple new users. Therefore, the active matching module 110 in this embodiment includes multiple active matching units, each of which executes a traversal matching process for a new user. Figure 8 As shown, the first active matching unit 111, the second active matching unit 112, etc., concurrently match social objects for multiple target users. Each active matching unit, when executing the traversal matching process, according to... Figure 3 The process starting from step S202 is executed, and is handled in cooperation with the waiting matching module 120. The specific processing steps will not be described in detail here. To coordinate with multiple active matching units in executing the traversal matching process, the waiting matching module 120 includes multiple waiting matching time timing units, such as... Figure 8 The diagram shows multiple waiting-for-matching-time timing units, such as the first waiting-for-matching-time timing unit 121, the second waiting-for-matching-time timing unit 122, etc. These units are used to time the process of waiting to be matched by other users in a target independent sub-pool after traversing the matching process without finding a social object. They also monitor whether the target user has been matched as a social object within a preset timing period. If not matched by other new users, the target user is marked as a scheduled matching user. The first active matching unit 111, the second active matching unit 112, etc., respectively... Figure 4 The process shown here involves traversing and matching, which will not be elaborated further here.
[0079] Figure 9 This is a block diagram illustrating the principle of a scheduling matching module in a user matching system according to another embodiment of the present invention. The scheduling matching module 130 in this embodiment includes a scheduling queue unit 1301, multiple scheduling matching timing units, and multiple scheduling matching units. The scheduling queue unit 1301 receives users waiting to be marked by the matching module 120, calculates their scheduling order based on a preset scheduling processing strategy, adds the scheduled matching users to the scheduling queue according to the scheduling order, and simultaneously sends a notification to a scheduling matching timing unit, which then times the scheduling matching time for that user. Therefore, the number of scheduling matching timing units is the same as the number of users in the scheduling queue. Figure 9As shown, the system currently includes multiple scheduling and matching timing units, such as the first scheduling and matching timing unit 1311 and the second scheduling and matching timing unit 1312, and each unit is responsible for timing. The scheduling and matching module 130 can concurrently execute multiple traversal matching processes to traverse users in the online scheduling pool and match social objects for multiple users. In this embodiment, the scheduling and matching module 130 includes multiple scheduling and matching units, such as the first scheduling and matching unit 1321 and the second scheduling and matching unit 1322 shown in the figure.
[0080] Figure 8 Active matching unit and Figure 9 When executing the traversal matching process, the scheduling and matching unit can group users in the matching pool and the online scheduling pool, and randomly select user groups and users for matching.
[0081] This invention sets the matched object to an occupied state only upon successful matching to prevent further matching by others. Therefore, it does not lock users during matching, minimizing the scope of locking blockage and enabling a large number of concurrent matching processes, thus improving overall matching speed. This invention also flexibly expands the matching scope based on the execution of the matching process, effectively improving the matching success rate when there are insufficient actively matched users. Furthermore, this invention reduces the probability of matching conflicts during concurrent processing through grouping and random hashing strategies.
[0082] In another aspect, the present invention also provides an electronic device including a processor and a memory, wherein the memory stores a set of program instructions, and the processor executes the set of program instructions to implement the user matching method of the present invention. The electronic device is, for example, a server, a server cluster, or other form of computing device.
[0083] According to another aspect of the invention, a computer-readable storage medium is provided, wherein a set of program instructions is stored, which, when executed by a processor, implement the aforementioned user matching method. The computer-readable storage medium may be implemented as a memory, including but not limited to a hard disk drive (HDD), floppy disk drive, flash memory, optical disk, magneto-optical disk, magnetic tape, or Universal Serial Bus (USB) drive, or a combination of two or more of these. Where suitable, the memory may include removable or non-removable (or fixed) media. Where suitable, the memory may be internal or external to an integrated gateway disaster recovery device. In a particular embodiment, the memory is a non-volatile solid-state memory.
[0084] According to another aspect of the present application, the present application provides a computer program product comprising a set of program instructions which, when executed by a processor, implement the aforementioned user matching method. The computer program product is, for example, an application installation package, a plug-in, etc.
[0085] The above embodiments are only used for illustrating the present application, but not for limiting the present application. Those skilled in the art can make various changes and modifications without departing from the scope of the present application. Therefore, all equivalent technical solutions should belong to the scope of the present application.
Claims
1. A user matching method, characterized in that, include: The process of traversing the matching pool is executed to match social objects for new users in the matching pool who have not yet been matched with a user. In response to the failure to find a social match for a new user, the new user is marked as a passive matching user and waits to be matched with a new user in the matching pool, while the waiting time for the passive matching user is timed. In response to the timeout period of the waiting time for a passively matched user reaching a preset timeout period and no new user being matched in the matching pool, the passively matched user is marked as a scheduled matching user. as well as The process involves iterating through the users in the online scheduling pool to match them with social objects. The matching pool includes multiple independent sub-pools. When a user joins the matching pool, they are added as a new user to at least one independent sub-pool. When iterating through the users in the matching pool to match a new user with a social object, the target independent sub-pool is determined, and users in the target independent sub-pool are matched with social objects for the new user. The steps of the process include: Iterate through each user in the target pool and match social objects for the target user; wherein, when the target user is a new user or a passively matched user, the target pool is a matching pool or a target independent sub-pool; when the target user is a scheduled matching user, the target pool is an online scheduling pool. In response to matching a social object for the target user, it is determined whether the user who is the social object is already occupied; In response to the user being a social object not being occupied, the status of the user being a social object is marked as occupied, and it is detected whether the user being a social object is online; and In response to the user being online as a social object, the target user and / or the matched user being a social object are removed from the target pool; The users in the matching pool and independent sub-pools include new users who have not been matched and passively matched users; the users in the online scheduling pool are all users.
2. The user matching method according to claim 1, characterized in that, In response to the failure to find a social match for the new user in the target independent sub-pool, the new user is marked as a passive matching user and waits to be matched by a new user in the target independent sub-pool, while the waiting time for matching is timed. In response to the timeout period for waiting for matching reaching a preset timeout period and no social match being found, a new target independent sub-pool is determined, and the new user is marked as a new user in the new target independent sub-pool. The process of traversing and matching users in the new target independent sub-pool is executed to match social objects for the new user; and In response to the fact that no social object was matched for the new user after traversing all available target independent sub-pools, the new user was marked as a scheduled matching user.
3. The user matching method according to claim 1, characterized in that, When it is determined that there are multiple target independent sub-pools that need to be traversed, the matching priority of the multiple target independent sub-pools is determined, and social objects are matched for the new user starting from the target independent sub-pool with the highest matching priority.
4. The user matching method according to claim 1, characterized in that, When matching social objects for the target user by traversing each user in the target pool, a user in the target pool is randomly selected to be matched with the target user.
5. The user matching method according to claim 4, characterized in that, When matching social objects for the target user by traversing each user in the target pool, the users in the target pool are divided into multiple user groups, and each user in each user group is matched with a social object for the target user. The user groups to be traversed are randomly determined when traversing user groups.
6. The user matching method according to claim 1, characterized in that, When detecting whether a user, who is a social object, is online, it is determined whether a heartbeat message sent by the user's client is received within a preset time period. If a heartbeat message sent by the user's client is received within the preset time period, it is determined that the user is online.
7. The user matching method according to claim 1, characterized in that, When iterating through the users in the online scheduling pool and matching users with social objects, at least the user who was matched as a social object and the time of the match should be recorded.
8. The user matching method according to claim 1, characterized in that, While marking the passively matched users as scheduled matching users, their scheduling order is also calculated, and they are added to the scheduling queue according to the scheduling order. When performing the traversal matching process to traverse the users in the online scheduling pool and match social objects for the scheduled matching users, social objects are matched for one or more scheduled matching users who are ranked first in the scheduling queue.
9. The user matching method according to claim 8, characterized in that, The process of adding the scheduled matching user to the scheduling queue also includes timing the scheduling matching time. If no social object is matched after the preset timing period is reached, the scheduled matching user is removed from the scheduling queue.
10. A user matching system, characterized in that, include: The active matching module is configured to perform a traversal matching process, traversing the users in the matching pool and matching social objects for new users in the matching pool who have not yet been matched with them. The waiting matching module is connected to the active matching module and is configured to mark new users who have not been matched with a social object as passive matching users and wait to be matched by new users, while timing the waiting time of the passive matching users. When the waiting time of a passively matched user reaches a preset time period and the user is not matched with a new user in the matching pool, the passively matched user is marked as a scheduled matching user. as well as The scheduling and matching module, which is connected to the waiting matching module, is configured to perform a traversal matching process to traverse the users in the online scheduling pool and match social objects for the scheduled users; The matching pool includes multiple independent sub-pools. When a user joins the matching pool, they are added as a new user to at least one independent sub-pool. When executing the traversal matching process to match a new user with a social partner, the target independent sub-pool to be traversed is determined, and the users in the target independent sub-pool are traversed to match the new user with a social partner. The steps of executing the traversal matching process include: Iterate through each user in the target pool and match social objects for the target user; wherein, when the target user is a new user or a passively matched user, the target pool is a matching pool or a target independent sub-pool; when the target user is a scheduled matching user, the target pool is an online scheduling pool. In response to matching a social object for the target user, it is determined whether the user who is the social object is already occupied; In response to the user being a social object not being occupied, the status of the user being a social object is marked as occupied, and it is detected whether the user being a social object is online; and In response to the user being online as a social object, the target user and / or the matched user being a social object are removed from the target pool; The users in the matching pool and independent sub-pools include new users who have not been matched and passively matched users; the users in the online scheduling pool are all users.
11. An electronic device comprising a processor and a memory, wherein the memory stores a set of program instructions, characterized in that, When the processor executes the set of program instructions, it implements the user matching method according to any one of claims 1-9.
12. A computer-readable storage medium storing a set of program instructions, characterized in that, The user matching method according to any one of claims 1-9 is implemented when the set of program instructions is executed by the processor.
13. A computer program product comprising a set of program instructions, characterized in that, The user matching method according to any one of claims 1-9 is implemented when the set of program instructions is executed by the processor.
Citation Information
Patent Citations
User matching method and device
CN110188123A
Target object matching method and device and storage medium
CN113688328A