Поиск списков рассылки OpenJDK
Этот проект позволяет вам искать в нескольких списках рассылки OpenJDK.
Уникальная вещь в этом проекте - локальный поиск. Когда вы открываете страницу поиска, js-script Downlocs SQLite database с индексированными списками рассылки.
Плохо, что вам нужно скачать весь индекс поиска. Хорошо, что вы можете выполнить произвольные запросы SQL на вершине этого DB.
В настоящее время индексированные списки рассылки:
- https://mail.openjdk.org/pipermail/valhalla-dev/
- https://mail.openjdk.org/pipermail/amber-dev
- https://mail.openjdk.org/pipermail/panama-dev
- https://mail.openjdk.org/pipermail/loom-dev
- https://mail.openjdk.org/pipermail/lilliput-dev
- https://mail.openjdk.org/pipermail/leyden-dev
- https://mail.openjdk.org/pipermail/jdk-dev
- https://mail.openjdk.org/pipermail/graal-dev
- https://mail.openjdk.org/pipermail/AnnOung
Как это работает
- Периодически действие GitHub выполняет индексатор. Индексатор загружает новые электронные письма из архива (например, архивы Amber-Dev) и вставляет их в DB-Part-0*.
- Когда вы открываете фронт поиска, SQL.JS LIB Downloads Parts Database Parts
db-part-0* и готовит DB, используя WebAssembly . - Наконец, вы можете выполнить SQL -запросы локально без какого -либо взаимодействия с сервером.
Мониторинг деталей реализации
- После переосмысления мы проверяем новый размер базы данных. Если он отличается от старого, мы пишем новый размер базы данных и текущую временную метку dbsize.txt. Он реализован как один из шагов действий.
- У нас есть работник CloudFlare. У него есть Cron Trigger, который выполняет этого работника каждые несколько часов.
- Работник проверяет, когда база данных была обновлена в прошлый раз. Если это произошло более 5 дней назад, работник отправляет электронное письмо.
Кредиты
- Гуннар Морлинг - как я создал без сервера поиск своего блога для идеи этого проекта.
- https://github.com/sql-js/sql.js/ для отличной библиотеки, которая позволяет использовать SQLite из браузера.
- https://github.com/ для бесплатных действий для проектов с открытым исходным кодом.