Commit ed530229af9df3de929300145e9baab4cf5674ae
1 parent
642c1cd1d0
Exists in
master
getHealthyPartners
Showing 1 changed file with 21 additions and 2 deletions Side-by-side Diff
partner-im.js
... | ... | @@ -521,7 +521,7 @@ function onOnline() { |
521 | 521 | logger.warn('Exception on resuming aaa module: ' + e); |
522 | 522 | } |
523 | 523 | |
524 | - _initProbe(); | |
524 | + _initProbe(); | |
525 | 525 | } |
526 | 526 | |
527 | 527 | function onPM(from, msg) { |
... | ... | @@ -691,6 +691,25 @@ function getOnlinePartners(partners) { |
691 | 691 | return onlinePartners; |
692 | 692 | } |
693 | 693 | |
694 | +function getHealthyPartners(partners) { | |
695 | + | |
696 | + if (!imAdaptor.isPartnerHealthy) { | |
697 | + logger.verbose('partnerIm.getHealthyPartners: imAdaptor does not have isPartnerHealthy method, use isPartnerOnline'); | |
698 | + return isPartnerOnline(partners); | |
699 | + } | |
700 | + | |
701 | + var filteredPartners = []; | |
702 | + | |
703 | + var partnersCount = partners.length; | |
704 | + for (var i=0; i<partnersCount; i++) { | |
705 | + if (imAdaptor.isPartnerHealthy(partners[i])) { | |
706 | + filteredPartners.push(partners[i]); | |
707 | + } | |
708 | + } | |
709 | + | |
710 | + return filteredPartners; | |
711 | +} | |
712 | + | |
694 | 713 | |
695 | 714 | function getRandomPartnerId(forceOnlyHealthPartners) { |
696 | 715 | var _partners = getPartnersFromString(config.h2h_out.partner); |
... | ... | @@ -698,7 +717,7 @@ function getRandomPartnerId(forceOnlyHealthPartners) { |
698 | 717 | // tambah partner ke friend list, untuk menangani perubahan config |
699 | 718 | addAllPartnersToFriendList(_partners); |
700 | 719 | |
701 | - var partners = getOnlinePartners(_partners); | |
720 | + var partners = getHealthyPartners(_partners); | |
702 | 721 | |
703 | 722 | if (!partners.length) { |
704 | 723 |