Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Plugin unsubscribe

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] - √ - Plugin unsubscribe

    Hallo zusammen,
    vlt ne blöde Frage, aber ich hab leider nix dazu gefunden...
    Gibt's ne Möglichkeit, ein Plugin von einer GA abzumelden? Ich habe ein Plugin an eine GA z.B. 1/1/1 angemeldet, will jetzt aber nicht mehr, dass dieses Plugin weiterhin auf diese GA "hört"...
    ein Löschen des $plugin_subscribe -Parameters hilft leider nicht
    und den Wert auf 0 stellen, auch nicht...

    Löschen des Plugins und unter anderem Namen wieder anlegen wäre eine Möglichkeit, hat aber einiges an Arbeit nach sich - da der Name in anderen Plugins x-mal verwendet wird

    Danke schon mal!
    VG
    ...good byte...

    #2
    Zum säubern unerwünschter/nichtbenötigter subscribe hat fry mal ein sehr hilfreiches Plugin geschrieben...

    Open Automation / Code / [r2040] /wiregate/plugin/generic/Subscriptions.pl

    Einfach als neues Plugin anlegen. Wird nur ausgeführt, wenn du speicherst. Verhält sich also ruhig bis du es zum säubern im Editor öffnest und wieder speicherst. Damit geht das sehr komfortabel und du kannst es einfach auf dem WG als "Tool" drauf lassen
    Gruss Patrik alias swiss

    Kommentar


      #3
      super, danke!
      wusste nicht, dass es einfach mittels delete funktioniert

      hab die subscription nun in meinem Plugin manuell mittels delete gelöscht - aber das Plugin heb ich mir auf ;-)

      Danke und schönen Abend!
      ...good byte...

      Kommentar


        #4
        Na dann hat ja alles geklapt Das muss ich mir kurz noch notieren denn genau dass gehört dann auch ins neue Wiregate-Handbuch
        Gruss Patrik alias swiss

        Kommentar


          #5
          Zitat von Bernie1502 Beitrag anzeigen
          super, danke!
          wusste nicht, dass es einfach mittels delete funktioniert

          hab die subscription nun in meinem Plugin manuell mittels delete gelöscht - aber das Plugin heb ich mir auf ;-)

          Danke und schönen Abend!
          reicht hier die Zeile:
          Code:
          delete $plugin_subscribe{''};
          einmal im Plugin aufzurufen oder muss/kann man angeben welche GA aus subscribe gelöscht werden soll?

          Hilft eigentlich auch ein reboot oder restart eines processes zum beheben?

          Danke für eine kurze info
          Robert

          Kommentar


            #6
            Gibt es dazu eventuell von offizieller WG Seite einen Kommentar/Aussage?
            Das Verhalten führt zu unerwünschten Aufrufen, die vor allem nicht konsistent mit den Plugin Code ist.

            Danke
            Robert

            Kommentar


              #7
              Gibt es eigentlich eine Möglichkeit zu sehen, welche Plugins auf welche GAs angemeldet sind?
              Endlich umgezogen. Fertig? Noch lange nicht... ;-)

              Kommentar


                #8
                Zitat von Robert_Mini Beitrag anzeigen
                reicht hier die Zeile:
                Code:
                delete $plugin_subscribe{''};
                einmal im Plugin aufzurufen oder muss/kann man angeben welche GA aus subscribe gelöscht werden soll?
                Ich bin mir nicht sicher, was "delete $plugin_subscribe{''};" macht. Es löscht in jedem Fall keine Subscriptions.
                $plugin_subscribe{'GA'}{'PLUGIN'} ist ja ein hash of hashes. Du kannst einzelne Einträge gezielt löschen:
                Code:
                delete $plugin_subscribe{'GA'}{$plugname};
                Alternativ kannst Du auch den gesamten hash löschen, dann sind aber alle Einträge weg.

                Zitat von Robert_Mini Beitrag anzeigen
                Gibt es dazu eventuell von offizieller WG Seite einen Kommentar/Aussage?
                Das Verhalten führt zu unerwünschten Aufrufen, die vor allem nicht konsistent mit den Plugin Code ist.
                Ich bin zwar kein "offizieller", aber ich verstehe Deine Aussage auch nicht ganz. Welches Verhalten führt zu unerwünschten Aufrufen? Was meinst Du mit inkonsistent?

                Zitat von Hauke Beitrag anzeigen
                Gibt es eigentlich eine Möglichkeit zu sehen, welche Plugins auf welche GAs angemeldet sind?
                Du kannst ein Plugin erstellen, das alle Einträge des %plugin_subscribe ausspuckt. Zum Beispiel so (einfach als neues Plugin anlegen und speichern, dann stehen alle Subscriptions im Wiregate Plugin-Log).
                Code:
                $plugin_info{$plugname.'_cycle'} = 0;
                
                for my $GA (keys %plugin_subscribe) {
                   my @plugins;
                   for my $PL (keys %{$plugin_subscribe{$GA}}) {
                      push (@plugins, $PL);
                   }
                   plugin_log($plugname, "GA: $GA, PL: @plugins");
                }
                
                return;

                Kommentar


                  #9
                  Hallo XueSheng!

                  Super - Danke für deinen Beitrag - merk ich mir gleich für die Doku!

                  Bez. offiziell und inkonsistent:
                  Ich finde die Tatsache, dass alle GAs angemeldet bleiben, auch wenn das subscribe im plugin-code entfernt wird, sehr eigenartig. Immerhin wird das plugin weiterhin eventgetriggert aufgerufen, auch wenn die Zeile im Code entfernt wird. Es "wirkt", als wäre die Zeile noch vorhanden, obwohl gelöscht/auskommentiert.

                  Mit deiner Beschreibung zum hash ist es zumindest verständlich.

                  Eigentlich sollte das Verhalten so sein, dass beim speichern nicht mehr vorhandene "subscribes" automatisch gelöscht werden!
                  Ob das möglich/sinnvoll ist/wäre, muss Stefan beantworten.

                  lg
                  Robert

                  Kommentar


                    #10
                    Ja es ist in der Tat so... Wenn man ein Plugin mit Standard GA's einfügt und es erst einmal durchläuft und man im Nachhinein die GA's verändert, bleiben die alten subscriptions erhalten. Sinnvoller wäre, wenn man beim speichern eines Plugins erst mal alle subscription's des betreffenden Plugins aus dem globalen hash zu entfernen. Denn sonnst kann es immer wieder mal dazu kommen dass Plugins getriggert werden die eigentlich gar nicht sollten. Klar kann man das im Code abfangen aber schöner wäre, wenn die Plugins gar nicht erst unnötigerweise von falschen GA's getriggert würden.
                    Gruss Patrik alias swiss

                    Kommentar


                      #11
                      Ich hatte damit auch schon Endlosschleifen, die ein plugin >10x/sec getriggert hat...
                      Jetzt versteh ich zumindest warum.

                      Lg
                      Robert

                      Kommentar


                        #12
                        Das liegt natürlich in der Natur der Sache, dass ein Plugin-System basierend auf einer Skriptsprache den ein oder anderen Stolperstein bietet. Die enorme Flexibilität hat den Preis, dass man gewisse Grundregeln befolgen muss.

                        Es wäre zwar ein nettes Feature, wenn wiregated.pl auch %plugin_subscribe säubern würde, aber ich glaube da gibt es noch andere, wichtigere Baustellen.

                        Warum nicht einfach das Säubern vom Plugin selbst übernehmen lassen?
                        Testet doch mal folgenden Code, der sollte bei jedem Speichern des Plugins (oder wiregated restart) alle zugehörigen %plugin_subscribe Einträge löschen. Im Code müsste dieser Block am Anfang bzw. vor dem ersten $plugin_subscribe stehen. Von mir ungetestet, daher mit Bitte um Feedback.

                        Code:
                        if (($plugin_info{$plugname.'_lastsaved'} > $plugin_info{$plugname.'_last'}) or (!$plugin_initflag)) {
                           plugin_log($plugname, "[plugin_subscribe] Force Update: config change/restart");
                           delete $plugin_subscribe{$_}{$plugname} for (keys %plugin_subscribe);
                        }

                        Kommentar

                        Lädt...
                        X