Comments (2)
Yeah, you don't want to run SitemapAndIndexStream
again.
Although... the DB index you should be using should have all of the sitemap records sequentially in an index, so the actual cost of the query should be very low in that it should not use a lot of DB I/O and should not use a lot of DB CPU.
100k records is not a lot. That would only need to write a 2-3 record sitemap index and 2-4 sitemap xml files. Regenerating all of that would only take a minute or so with the XML serialization being the longest part.
The alternative is much more complex. You'll need to pull back the index file, get the latest sitemap XML file out of it, fetch that file, parse the latest sitemap into items, add to the items collection, rotate into a new file (and add it to the index) when the last file fills up, then put back the old latest file, any newly added files, and the index file.
It's... not trivial. I have a system that I'm trying to open source that does all of that, but I can't make any promises.
from sitemap.js.
Here is a project that utilizes this project and uses Kinesis streams to allow millions of items to be written to sitemaps (and updated / maintained):
https://github.com/shutterstock/streaming-sitemaps
That project may meet your needs or give you some ideas on how to approach the problem.
from sitemap.js.
Related Issues (20)
- [ BUG ] Using 'links' option in an entry breaks sitemap generation HOT 10
- [Feature] Keep a record of the parent node HOT 1
- [Feature] cdn for sitemap?
- add <mobile:mobile type="pc,mobile"/>
- [question] How do we render the streamToPromise buffer response for storage in a Cache? HOT 3
- Add option for removing trailing slash from the root page HOT 4
- index with multiple categorized sitemaps HOT 5
- [Feature] Specify lastmod attribute per url link HOT 2
- [Feature] Support for custom elements in SitemapStream
- [ BUG ] Premature end of data in tag url line 1 HOT 2
- [ BUG ] Cannot set property IndexTagNames of #<Object> which has only a getter HOT 2
- [ BUG ] Sitemap not generated when url count is less than 5. HOT 3
- [question] How to append urls to existing xml?
- [question] How to allow empty sitemap? HOT 3
- [ BUG ] `SitemapAndIndexStream` hangs on end if `SitemapStream` encountered error writing to its destination
- [ BUG ] `streamToPromise` does not propagate read stream errors HOT 2
- [ BUG ] Examples / docs with sequential `write` without a callback are not ideal
- [Feature] Publish `typedoc` docs
- [question] Document node v20 memory usage improvement on perf test
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sitemap.js.