Git Product home page Git Product logo

throttler's People

Contributors

derekperkins avatar josephbergevin avatar nozzle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

throttler's Issues

Calling function between batches?

Will the BatchedThrottler function allow grouping of jobs in batches and calling a function between those batches?

For example if I have 10 files, and want to process them in groups of 4 concurrently but call an aggregation function after files 4, 8, and 10.

Crash with high total jobs

panic: makechan: size out of range goroutine 4159 on vendor/github.com/nozzle/throttler/throttler.go:47

Add more comprehensive test cases

The current test cases while providing full code coverage don't fully check that the number of workers is throttled at max workers or that it waits for all jobs to finish before exiting Throttle(). These have all been checked and verified in production, but it'd be nice to have formal test case proof.

Data Race

WARNING: DATA RACE
Read at 0x00c42054c3e0 by goroutine 42:
code.uber.internal/driver/fleet_finance/vendor/github.com/nozzle/throttler.(*Throttler).Throttle()
/mnt/jenkins/workspace/test-fleet_finance/.tmp/.goroot/src/code.uber.internal/driver/fleet_finance/vendor/github.com/nozzle/throttler/throttler.go:84 +0x1e3

Previous write at 0x00c42054c3e0 by goroutine 43:
code.uber.internal/driver/fleet_finance/vendor/github.com/nozzle/throttler.(*Throttler).Done()
/mnt/jenkins/workspace/test-fleet_finance/.tmp/.goroot/src/code.uber.internal/driver/fleet_finance/vendor/github.com/nozzle/throttler/throttler.go:95 +0x1c8

func (t *Throttler) Done(err error) {
t.doneChan <- struct{}{}
if err != nil {
t.errsMutex.Lock()
t.errs = append(t.errs, err)
t.errorCount++
t.errsMutex.Unlock()
}
}

Should t.doneChan <- struct{}{} after if err != nil?

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.