есть такая штука, когда программа должна автоматически изменять значение столбца элемента в таблице на основе его идентификатора типа. В основном
-Таблица расписания технического обслуживания содержит идентификатор типа и количество дней.
-Таблица элементов содержит идентификатор элемента, идентификатор типа и идентификатор состояния.
Если идентификатор типа записи таблицы элементов имеет соответствующий идентификатор типа в таблице MS, идентификатор состояния меняется (например, с 1 [активный] на 2 [неактивный]) каждый раз [No. Дней] дней. Большая проблема, с которой я столкнулся, заключается в том, что в таблице элементов содержится около 10 тысяч записей, и я понятия не имею, выйдет ли из строя мой компьютер или нет, если я запущу его. У вас есть идеи по оптимизации?
import java.util.ArrayList;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduleMaintenance {
private ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
private ArrayList itemsList;
private ArrayList maintSched;
public void startScheduler() {
// Retrieve the lists from SharedData
itemsList = SharedData.getInstance().getItemsList();
maintStat = SharedData.getInstance().getMaintStat();
maintSched = SharedData.getInstance().getMaintSched();
int delay = 0;
// Loop through itemsList to find matches in maintSched
for (Item item : itemsList) {
// Loop through maintSched to check for matching typeID
for (Item schedItem : maintSched) {
if (item.getItemTID() == schedItem.getItemTID()) {
delay = 10;
break;
} else if (item.expiration != null){
delay = 20
break;
}
}
if (delay > 0) {
scheduler.schedule(() -> performMaintenance(item), delay, TimeUnit.DAYS);
}
}
}
public void stopScheduler() {
scheduler.shutdown();
try {
if (!scheduler.awaitTermination(60, TimeUnit.SECONDS)) {
scheduler.shutdownNow();
}
} catch (InterruptedException e) {
scheduler.shutdownNow();
}
}
private void performMaintenance(Item item) {
// SQL Update here, for now, just printing
System.out.println("Performing maintenance on item with ID: " + item.getItemID() + " and typeID: " + item.getItemTID());
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ues-of-ano
Автоматически обновлять записи в таблице базы данных sql на основе значений другой таблицы. ⇐ JAVA
Программисты JAVA общаются здесь
1731391540
Anonymous
есть такая штука, когда программа должна автоматически изменять значение столбца элемента в таблице на основе его идентификатора типа. В основном
-Таблица расписания технического обслуживания содержит идентификатор типа и количество дней.
-Таблица элементов содержит идентификатор элемента, идентификатор типа и идентификатор состояния.
Если идентификатор типа записи таблицы элементов имеет соответствующий идентификатор типа в таблице MS, идентификатор состояния меняется (например, с 1 [активный] на 2 [неактивный]) каждый раз [No. Дней] дней. Большая проблема, с которой я столкнулся, заключается в том, что в таблице элементов содержится около 10 тысяч записей, и я понятия не имею, выйдет ли из строя мой компьютер или нет, если я запущу его. У вас есть идеи по оптимизации?
import java.util.ArrayList;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduleMaintenance {
private ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
private ArrayList itemsList;
private ArrayList maintSched;
public void startScheduler() {
// Retrieve the lists from SharedData
itemsList = SharedData.getInstance().getItemsList();
maintStat = SharedData.getInstance().getMaintStat();
maintSched = SharedData.getInstance().getMaintSched();
int delay = 0;
// Loop through itemsList to find matches in maintSched
for (Item item : itemsList) {
// Loop through maintSched to check for matching typeID
for (Item schedItem : maintSched) {
if (item.getItemTID() == schedItem.getItemTID()) {
delay = 10;
break;
} else if (item.expiration != null){
delay = 20
break;
}
}
if (delay > 0) {
scheduler.schedule(() -> performMaintenance(item), delay, TimeUnit.DAYS);
}
}
}
public void stopScheduler() {
scheduler.shutdown();
try {
if (!scheduler.awaitTermination(60, TimeUnit.SECONDS)) {
scheduler.shutdownNow();
}
} catch (InterruptedException e) {
scheduler.shutdownNow();
}
}
private void performMaintenance(Item item) {
// SQL Update here, for now, just printing
System.out.println("Performing maintenance on item with ID: " + item.getItemID() + " and typeID: " + item.getItemTID());
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79179954/automatically-update-entries-in-an-sql-database-table-based-on-the-values-of-ano[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия