Giter Site home page Giter Site logo

Comments (6)

jonlaing avatar jonlaing commented on September 13, 2024 3

I was looking at this project after searching "Golang cron", and liked the idea, but wanted to build it differently without reflection, so I rolled my own. I think the issue is that all the jobs are being run on the same thread, thus if a job of yours takes more than a second, all of your jobs will be delayed by that much.

Looking at the code, it'll take some tinkering to make it work properly, as the job.run() function returns some values from the task, making spinning off a new goroutine a little more tricky. I guess, my question is why do we need to return the result of the task? It looks like the only time that's used is in NextRun().

I'm finding it a little hard to see where that would be useful. If we dropped needing to return the result of the task, we could rewrite the job.run() function like:

func (j *Job) run() {
    // ...
    // Instead of throwing an error here when the task is running,
    // why not throw an error when the task is added to the scheduler?
    // if len(params) != f.Type().NumIn() {
    //  err = errors.New("The number of param is not adapted.")
    //  return
    // }
    // ...
    go f.Call(in) // spin off a goroutine so as not to delay subsequent tasks
    j.lastRun = time.Now()
    j.scheduleNextRun()
}

My cursory testing shows this to work, but I've hardly been exhaustive with it. That's my suggestion anyway.

from gocron.

igateno avatar igateno commented on September 13, 2024 3

@jasonlvhit what's the status of this issue? Any plans to resolve? I'm seeing some similar behavior in my project, and honestly if this is not resolved I will need to move away from this lib.

from gocron.

xEtarusx avatar xEtarusx commented on September 13, 2024 2

I have the same problems with my projects. All delay by some time. It's not exactly the time the tasks take to execute.
If I execute tasks every 10 seconds (which takes 1 second of processing time) they get delayed by 1 second most of the time. This is an incredible impact if I run tasks on another projects once a day. They take up to 2 hours to process and the delayed amount is always more than 30mins+ ! Please fix this. You cannot schedule a task at 03:00 AM and after a week it's running at 07:00 AM...

from gocron.

denouche avatar denouche commented on September 13, 2024

Does #57 could resolve this issue ?

from gocron.

skrynauw avatar skrynauw commented on September 13, 2024

Yes #57 solves it, I had the same issue

from gocron.

JohnRoesler avatar JohnRoesler commented on September 13, 2024

Come checkout https://github.com/go-co-op/gocron where we have an active fork of this repo!

from gocron.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.