Вы должны убедиться, что зависимости mysql существуют для всех исполнителей. В моей среде я использую maven и указываю такую зависимость внутри моего pom.xml
:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.42</version>
</dependency>
. Затем я проверяю, что эта зависимость включена в jar приложения (используя плагин maven shade), поэтому что мне не нужно ставить банку на всех исполнителей.
Независимо от того, используете ли вы spark
или нет для доступа к mysql
через jdbc
, вам необходимо убедиться, что mysql-connector
доступен в classpath
, где бы вы ни выполняли mysql
запросов. [1110 ]
Вам просто нужно найти количество миллисекунд между текущим и вашим объектом даты.
function setToHappen(fn, d){
var t = d.getTime() - (new Date()).getTime();
return setTimeout(fn, t);
}
Нет, но вы можете легко написать свою собственную функцию. Просто вычислите разницу между настоящим моментом и данным моментом в миллисекундах и вызовите setTimeout с этим.
Примерно так:
setToHappen = function(fn, date){
var now = new Date().getTime();
var diff = date.getTime() - now;
return setTimeout(fn, diff);
}
РЕДАКТИРОВАТЬ: убрал дополнительное умножение на 1000, спасибо Крису за указание на это!
Поскольку люди говорят о вычислении интервалов времени ожидания с использованием объектов date
, следует отметить, что в Firefox , максимальное значение setTimeout ()
примет для параметра интервала значение 2147483647 (2 ^ 31 - 1), поскольку PRIntervalTime
является 32-разрядным целым числом со знаком. Это составляет чуть менее 25 дней.