Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: allow using a pool of background workers #1120

merged 20 commits into from Apr 5, 2019


None yet
6 participants
Copy link

commented Mar 11, 2019

Proposed changes

This PR introduces the possibility of running jobs using a pool of threads.

Related to that, all the request (except some that are tied to the JavaScript API Client) have been moved to be executed through 1 new service (src/renderer/services/http.js) that can send them on the main thread (using axios) or on the background.

I've tried to measure the difference between the previous approach and the this one, and the different is very small, so I've disabled the requests on the background by default.

Types of changes

  • New feature (non-breaking change which adds functionality)
  • Refactoring (improve a current implementation without adding a new feature or fixing a bug)
  • Test (adding missing tests or fixing existing tests)


  • I have read the CONTRIBUTING documentation
  • Lint and unit tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works

This comment has been minimized.

Copy link

commented Mar 11, 2019

The ci/circleci: test-node-11 job is failing as of 59091a4010d9f977dea1a79662e43f201e775a99. Please review the logs for more information.

Once you've pushed the fixes, the build will automatically re-run. Thanks!


This comment has been minimized.

Copy link

commented Mar 11, 2019

Codecov Report

Merging #1120 into develop will increase coverage by 0.28%.
The diff coverage is 60.37%.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop    #1120      +/-   ##
+ Coverage    42.64%   42.93%   +0.28%     
  Files          213      217       +4     
  Lines         5590     5641      +51     
  Branches      1071     1075       +4     
+ Hits          2384     2422      +38     
- Misses        3085     3099      +14     
+ Partials       121      120       -1
Impacted Files Coverage Δ
src/renderer/pages/Wallet/mixin-on-create.js 0% <ø> (ø) ⬆️
...nts/Transaction/TransactionForm/mixin-on-submit.js 0% <ø> (ø) ⬆️
src/renderer/components/Wallet/WalletSignModal.vue 14.58% <ø> (ø) ⬆️
src/renderer/workers/http.js 0% <0%> (ø)
src/renderer/workers/bip38.js 0% <0%> (ø)
src/renderer/services/wallet.js 12% <0%> (-0.5%) ⬇️
src/renderer/services/release.js 87.5% <100%> (+1.78%) ⬆️
src/renderer/services/bip38.js 100% <100%> (ø) ⬆️
src/renderer/services/client.js 70.95% <60%> (+0.29%) ⬆️
src/renderer/services/http.js 66.66% <66.66%> (ø)
... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 80b647e...33bbba6. Read the comment docs.


This comment has been minimized.

Copy link

commented Mar 12, 2019

Upgrade babel-jest to fix the bug in node v11.11 😉

@j-a-m-l j-a-m-l force-pushed the request-on-background branch from c4e141e to 33bbba6 Apr 4, 2019

@j-a-m-l j-a-m-l merged commit e42290f into develop Apr 5, 2019

1 check passed

ci/circleci: test-node-11 Your tests passed on CircleCI!

@ArkEcosystemBot ArkEcosystemBot deleted the request-on-background branch Apr 5, 2019


This comment has been minimized.

Copy link

commented Apr 7, 2019


This comment has been minimized.

Copy link
Contributor Author

commented Apr 8, 2019

@Mrmules as you can read at the bottom of the message that you posted, you've received that email because you're subscribed to this PR notifications. There you could see a link to unsubscribe.

alexbarnsley added a commit that referenced this pull request Jun 26, 2019

chore: merge develop to master (#1304)
* fix: improve validation for epoch format (#1164)

* chore: upgrade Vue and other dependencies and use Node 11 on CI (#1160)

* feat: allow using a pool of background workers and use create a unified HTTP client (#1120)

* fix: `InputSelect` dropdowns (#1174)

* fix: `InputSelect` dropdowns

* refactor: use the new Vue 2.6 syntax for named slots

* fix: do not allow more than 1 `InputSelect` open at the same time

* fix: other network fees when higher than ARK default static fees (#1172)

* fix: main sidebar menus (settings and peers/networks) (#1175)

* fix: the wallet selection dropdown and the wallet sidebar filters (#1184)

* fix: do not fail when navigating to other page while loading transactions (#1185)

* fix: use of getStruct in ledger transactions (#1190)

* chore: add ItsANameToo as code owner

* fix: add network modal validation (#1173)

* fix: network validation being overwritten

* feat: pull active delegates from api

* fix: make sure active delegates value exists

* refactor: improve server regex

* test: network modal for adding network

* chore: replace todo with comment

* fix: use one loop with prefilled values as backup

* refactor: allow string or number for input text

* refactor: allow fetching fees for specific network

* fix: fetch network fees when adding/editing

* fix: fetch fees & wait before add/update

* chore: remove mario from contributors (#1196)

* chore: add Altilly Exchange Wallet (#1199)

* fix: align the add profile placeholder (#1202)

* fix: days on the X axis of the market chart (#1203)

* fix: fetch fees only if the network is available (#1206)

* fix: stop hover from displacing address container (#1242)

* fix: vue-i18n-extract commands (#1247)

* refactor: require user action when generating 2nd passphrase (#1229)

* feat: store sidebar sorting and filters (#1148)

* feat: add option to hide the wallet button text (#1146)

* fix: get children of TransitionGroup when available & word-break of vendorfield (#1234)

* feat: show remaining bytes in vendorfield helper text (#1259)

* chore: use organization-wide GitHub Configuration (#1267)

* misc: Italian language update (#1268)

* fix: tidy permission method names & check exists (#1260)

* feat: add option to export wallets (#1244)

* feat: use the theme colours for the wallet filters instead of white (#1270)

* deps: upgrade `axios` (CVE-2019-10742) (#1271)

* fix: saving of invalid profile name on leave (#1101)

* bugfix: saving of invalid profile editions

* refactor: dont disable save button when profile name valid

even when the 'isNameEditable' don't disable save button. Instead disable it only when the name has an error.

* Update en-US.js

* Update ProfileEdition.vue

* refactor: show failed update message on close

* refactor: add update failure reason

* fix: disable both save buttons if name invalid

* fix: display the wallet sidebar filters on the right position (#1201)

* fix: highlight filters button when expanded if active

* fix: display the wallet sidebar filters on the right position

* refactor: add the status icon and plus/minus sign in the transaction show modal (#1272)

* fix: use webview instead of iframe for changelly (#1277)

* revert: worker changes from commit e42290

* refactor: use nock to mock tests (#1291)

* fix: add options mock requests

* fix: tests not mocking api

* fix: duplicated key warning on `WalletNew`

* Update src/renderer/pages/Wallet/WalletNew.vue

Co-Authored-By: Edgar Goetzendorff <>

* fix: ledger options on build (#1300)

* fix: ledger options on build

* fix: use component directly

* fix: change order of arguments in uniqBy call (#1297)

* fix: don't close custom peer modal when clicking inside (#1204)

* refactor: rename `NetworkCustomPeer` to `NetworkCustomPeerModal`

* fix: do not close the custom peer modal when clicking inside it

* refactor: wallet address & balance clickable on WalletAll page (#1301)

* fix: ledger wallet sidebar filter (#1292)

* fix: ledger whitescreen (#1296)

* fix: ledger whitescreen errors

* refactor: all ledger errors are failures

* refactor: improve ledger connection check

* refactor: improve ledger & use hid-singleton

* test: fix failing

* chore: remove e2e tests

* fix: open transaction modal on dashboard (#1281)

* fix: remove deeplink validation prefix

* fix: open transaction modal on dashboard

* fix: don't switch twice when selecting wallet on WalletSidebar (#1302)

* chore: bump version to 2.5.0 (#1303)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.