Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Gelöst] Ungewollter mehrfach Aufruf von schedule()

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    719

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

[Gelöst] Ungewollter mehrfach Aufruf von schedule()

Scheduled Pinned Locked Moved Skripten / Logik
6 Posts 3 Posters 596 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    pibroker
    wrote on last edited by
    #1

    Hallo, habe in der Suche nichts zum Thema gefunden.

    Wenn ich nachfolgendes Skript Aufrufe, wird im Log über 20 mal die Testausgabe "in Funktion f" ausgegeben.

    Also wird wohl auch die ganze Funktion zigmal aufgerufen.

    var cl_sched = null;
    
    function f() {
        clearSchedule(cl_sched);
        console.log("in Funktion f");
        cl_sched = schedule("*/1 * * * *", f);
    }
    
    cl_sched = schedule("*/1 * * * *", f);
    
    

    Was mache ich falsch?

    1 Reply Last reply
    0
    • uweklattU Offline
      uweklattU Offline
      uweklatt
      wrote on last edited by
      #2

      Hallo,

      Du hast einen rekursiven Aufruf programmiert. Die Funktion ruft sich selbst auf…

      Ein einzelner Aufruf von schedule() ausserhalb der Funktion genügt.

      Innerhalb der Funktion sollte das dann nicht mehr erfolgen.

      Frohe Weihnachten!

      Tschau

      Uwe

      Proxmox/LXC/Docker

      1 Reply Last reply
      0
      • P Offline
        P Offline
        pibroker
        wrote on last edited by
        #3

        Danke für die Antwort, das Skript ist nur ein Beispiel. Ich habe vor in der Funktion f() zu entscheiden ob ich ein weiteres Mal schedule() aufrufe oder nicht. Ist das grundsätzlich so nicht möglich?

        1 Reply Last reply
        0
        • uweklattU Offline
          uweklattU Offline
          uweklatt
          wrote on last edited by
          #4

          Hallo pibroker,

          lass die Funktion doch im gewünschten Intervall dauernd laufen und bau dort die Bedingung ein.

          Nur wenn die Bedingung erfüllt ist, macht die Funktion etwas.

          Das ist letztendlich resourcenschonender, als ständiges Ein- und Ausschalten des Callbacks.

          Tschau

          Uwe

          Proxmox/LXC/Docker

          1 Reply Last reply
          0
          • P Offline
            P Offline
            pibroker
            wrote on last edited by
            #5

            @uweklatt:

            Hallo pibroker,

            lass die Funktion doch im gewünschten Intervall dauernd laufen und bau dort die Bedingung ein.

            Nur wenn die Bedingung erfüllt ist, macht die Funktion etwas.

            Das ist letztendlich resourcenschonender, als ständiges Ein- und Ausschalten des Callbacks.

            Tschau

            Uwe `
            Danke für die Hilfe. :)

            1 Reply Last reply
            0
            • AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              wrote on last edited by
              #6

              @pibroker:

              Was mache ich falsch? `
              Du missbrauchst einen Schedule wenn du ein Timeout verwenden könntest:

              function f() {
                  console.log("in Funktion f");
              
                  // Wenn die Funktion wieder aufgerufen werden soll
                  setTimeout(f, 60000); // 1 Minute-Intervall
              }
              
              setTimeout(f, 60000); // 1 Minute-Intervall
              // alternativ sofort:
              f();
              
              

              Oder eben einmalig einen Schedule starten und bei jedem Aufruf von f prüfen, ob eine Bedingung erfüllt ist.

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              1 Reply Last reply
              0

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              238

              Online

              32.7k

              Users

              82.6k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Home
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe