mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-03-01 18:44:01 +08:00
💌 A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
Summary: Add internal state to the sync worker to allow for it to be interrupted and restarted. The concept in this commit is that if we've tried to trigger a sync enough times while its already in progress, bail and start over. Usually, we manually trigger sync loops when we queue a new SyncbackTasks, so that the newly queued task gets executed. This is necessary because the only way to run SyncbackTasks is via the sync loop, for consistency and simplicity reasons. For example, we might run into a case where we queue a SendMessage task, and we want it to be executed ASAP, but if we're in the middle of a syncing a mailbox with a ton of folders, we wont get to the SendMessage task after some considerable time. Specifically this commit makes it so: - If the number of sync attempts while in progress is > 0, make sure we schedule the next sync immediately - If we reach a threshold of sync attempts while in progress, interrupt sync and restart Test Plan: todo :( Reviewers: mark, spang, evan Reviewed By: evan Differential Revision: https://phab.nylas.com/D3520 |
||
---|---|---|
arclib | ||
packages | ||
.arcconfig | ||
.arclint | ||
.dockerignore | ||
.eslintrc | ||
.gitignore | ||
.tern-project | ||
Dockerfile | ||
lerna.json | ||
package.json | ||
pm2-dev.yml | ||
pm2-prod-api.yml | ||
pm2-prod-workers.yml | ||
README.md | ||
test_accounts.txt |
K2 - Local Sync Engine & Cloud Services for Nylas N1
This is a collection of all sync and cloud components required to run N1.
- Cloud API: The cloud-based auth and metadata APIs for N1
- Cloud Core: Shared code used in all remote cloud services
- Cloud Workers: Cloud workers for services like send later
- Isomorphic Core: Shared code across local client and cloud servers
- Local Sync: The local mailsync engine integreated in Nylas N1
See /packages
for the separate pieces. Each folder in /packages
is
designed to be its own stand-alone repositoriy. They are all bundled here
for the ease of source control management.
Initial Setup for All Local & Cloud Services:
New Computer (Mac):
- Install Homebrew
- Install NVM
brew install nvm
- Install Node 6 via NVM:
nvm install 6
- Install Redis locally
brew install redis
New Computer (Linux - Debian/Ubuntu):
- Install Node 6+ via NodeSource (trusted):
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
- Install Redis locally
sudo apt-get install -y redis-server redis-tools
benefit of letting us use subdomains.