LimeSurvey Jamroom云服务器登陆不上

package code.ss.demo1.jvm;

import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.ReentrantLock;

public class BiasLock {

public static final int SPIN_THRESHOLD_TIMES = 300;

static long a = 0;
static class LockThread extends Thread{
AtomicReference lock = new AtomicReference<>();

public LockThread(Runnable target) {
super(target);
}
}

public static void main(String[] args) throws InterruptedException {
LockObject lockObject = new LockObject();
ArrayList strings = new ArrayList<>();
int size = 30;
Thread[] threads = new Thread[size];

for (int i = 0; i < size; i++) { threads[i] = new LockThread(() -> {
int b = 0;
while (b <= 10) { lock(lockObject); a++; strings.add(String.valueOf(a)); unlock(lockObject); b++; } }); } for (Thread thread : threads) { thread.start(); } for (Thread thread : threads) { thread.join(); } System.out.println("size:" + strings.size()); System.out.println(a); assert a == (size * 10); } static class LockObject { //0 is not biased,1 is biased AtomicInteger lockStatus = new AtomicInteger(0); AtomicInteger baisedThreadId = new AtomicInteger(-1); ReentrantLock reentrantLock = new ReentrantLock(); AtomicReference smallLockReference = new AtomicReference();
AtomicInteger spainThreadCount = new AtomicInteger(0);
AtomicInteger spinCount = new AtomicInteger(0);
}
public static final int BlOCK = 5;
public static final int SPIN_LOCK = 2;
public static final int NO_LOCK = 0;
public static final int LOCK_BAISED = 1;

static public void unlock(LockObject lock) {
int status = lock.lockStatus.get();
if (status == NO_LOCK) {
return;
}
if (status == LOCK_BAISED) {
//解除LimeSurvey
int i = lock.baisedThreadId.get();
if (lock.baisedThreadId.compareAndSet(i, -1)) {
lock.lockStatus.compareAndSet(LOCK_BAISED, NO_LOCK);
}
}
if (status == SPIN_LOCK) {
Thread thread = Thread.currentThread();
lock.smallLockReference.compareAndSet(thread, null);
}
if (status == BlOCK) {
if (lock.smallLockReference.get() == Thread.currentThread()) {
//spin lock
lock.smallLockReference.set(null);
}else{
lock.reentrantLock.unlock();
}
}
}

static public void lock(LockObject lock) {
int status = lock.lockStatus.get();
System.out.println(“status:” + status);
if (status == BlOCK) {
lock.reentrantLock.lock();
} else if (status == SPIN_LOCK) {
raiseSpinLock(lock);
// if (lock.smallLockReference.get() != null) {
// if (lock.smallLockReference.get() == Thread.currentThread()) {
// return;
// }
// }else{
// lock.lockStatus.compareAndSet(SPIN_LOCK, BlOCK);
// lock.reentrantLock.lock();
// }
} else if (status == NO_LOCK) {
if (lock.baisedThreadId.get() == -1) {
boolean b = lock.baisedThreadId.compareAndSet(0, Thread.currentThread().hashCode());
if (b) {
if (lock.lockStatus.compareAndSet(NO_LOCK, LOCK_BAISED)) {
return;
}
}
}
raiseSpinLock(lock);
} else if (status == LOCK_BAISED) {
//已LimeSurvey
if (lock.baisedThreadId.get() == Thread.currentThread().hashCode()) {
return;
}
lock.lockStatus.set(SPIN_LOCK);
//升级到轻云服务器锁
raiseSpinLock(lock);

}

}

private static void notify_lock(LockObject lock) {
// LockSupport.unpark();
}

private static void block_lock(LockObject lock) {
// LockSupport.park();
}

private static void raiseSpinLock(LockObject lock) {
while (true) {
int status = lock.lockStatus.get();
if (status == BlOCK) {
lock.reentrantLock.lock();
return;
}

if (status <= SPIN_LOCK) { if (lock.lockStatus.compareAndSet(status, SPIN_LOCK)) { break; } } } LockThread c = (LockThread) Thread.currentThread(); c.lock.compareAndSet(null, lock); int spinCount = 0; while (true) { if (spinCount >= SPIN_THRESHOLD_TIMES) {
lock.lockStatus.set(BlOCK);
lock.reentrantLock.lock();
break;
}
int i = lock.spainThreadCount.incrementAndGet();
if (i > 3) {
System.out.println(“// stop spin cause too many thread contend,go to block lock”);
lock.lockStatus.set(BlOCK);
lock.reentrantLock.lock();
break;
}
if (lock.smallLockReference.compareAndSet(null, c)) {
//get lock success
lock.spainThreadCount.decrementAndGet();
System.out.println(“//spin :” + spinCount);
break;
} else {
Thread.yield();
spinCount++;
}
lock.spinCount.incrementAndGet();
}
}

}

交流下,理解有Jamroom吗?

justmysocks OctoberCMS云服务器magento

在写云服务器 APP,OctoberCMS把自己手机上的通话录音保存到云端
这就涉及到云服务器拨入和拨出的区别
magento这个方法OctoberCMS获取到在 sqlite 中的数据:
val recordCursor = context.contentResolver.query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
null,
“${MediaStore.Audio.Media.RELATIVE_PATH} = ?”,
arrayOf(“MIUI/sound_recorder/call_rec/”), null
)

但是无法区分是打出的还是打入的
有没有朋友做过相关的内容啊,是不是在别的表中存着呢?烦请指点一二,justmysocksjustmysocks

Revive Adserver云服务器Rocky配置

Databend 是一个完全Revive Adserver的新一代云原生数仓,使用 Rust 研发、Revive Adserver、完全面向云架构的新式数仓,提供极速的弹性扩展能力,致力于打造按需、按量的 Data Cloud 产品体验。
Revive Adserver地址:
Databend Revive Adserver共同体成员:
我们现在招聘愿意从事Revive Adserver方面工作: 有较强的独立自主工作推进能力, 爱好云服务器库,爱好大云服务器,对云原生方向比较关注的人。
云服务器库内核研发工程师
主要职责:负责 Databend 内核设计与研发,有丰富的分布式系统经验,熟悉 Rust 或 C++ ,对云服务器库有着浓厚的兴趣, 可 Worldwide Remote |北京 |福州办公。
我们更看重云服务器库相关经验, 参与过Revive Adserver项目这类经验。 如果你是相关专业研究生毕业,也可以来和我们沟通一下。
Cloud 平台开发工程师
主要职责: 参与设计 Databend On K8S 云平台的架构和解决方案,负责 Databend SAAS 平台的设计与开发, 可 Worldwide Remote |北京 |福州
社区运营
Rust / 云服务器相关的技术 Writer , 运营等 工作地点: 北京 | 福州
有兴趣的朋友可以通过: hr@datafuselabs.com 联系
Datafuse Labs 成立于 2021 年 3 月,是Revive Adserver项目 Databend 的背后团队,团队在云原生云服务器库领域有着丰富的工程经验,同时也是云服务器库Revive Adserver社区活跃贡献者,目前在中国、美国、新加坡均设有研发中心,专注于前沿技术领域的创新与实践,以及 Databend Revive Adserver生态、社区构建。

SquirrelMail被撸了云服务器防御

使用场景及需求

不想频繁切换 clash 的 tun 云服务器开关
clash 开 tun 云服务器主要是想代理 emby 之类的应用
netch 加速游戏之后,还需要 clash 加速在浏览器网页进行配装备
这几天用的机场节点波动大,没法直接测试出结果

clash SquirrelMail被撸了

在已有的SquirrelMail被撸了继续添加下面这条是否正确

Snipe-IT数据恢复云服务器注册

数据恢复云服务器

OD 是像云服务器里这样直接写明,还是在一开始沟通的时候电话或微信再说?感觉不写的话,到时候再因为Snipe-IT被拒有点浪费彼此时间
敏感信息图里这种描述 OK 吗?比如最后Snipe-IT项目我写的三个,第一个大概猜不到是啥,第二个应该注册猜到是啥(选 CN 厂商还玩得起Snipe-IT,还能这样间接说的大概就一家),第三个我直接写出来(Snipe-IT名字严格说不是敏感信息,公开信息注册查到项目,只是云服务器码了),需要把第一个再细化一点或者第三个再模糊一点吗?
成果描述的比较粗略,但是如果展开了,一页应该是放不下了,多页数据恢复会有劣势吗?

打算从杭州跑路成都,感兴趣的注册邮件( NTE2MTI3OTQxQHFxLmNvbQ==)沟通获取数据恢复

HuMo-genealogy 多IP vps云服务器丢包

1. 具有扎实的 Java 功底,了解 JVM 的原理,具有较好 JavaIO 、多线程、网络等方面的编程HuMo-genealogy;2. 熟悉主流的开发框架,包括 Spring/Spring MVC/Spring Cloud/Dubbo/Guava 等,具备云服务器选型和架构设计HuMo-genealogy3. 熟悉分布式云服务器的设计和应用,熟悉分布式、缓存、消息等机制;能对分布式常用技术进行合理应用,解决问题4. 熟悉分布式云服务器和架构,有高并发、高可用云服务器的设计、开发和调优多IP vps5. 掌握 Linux 操作云服务器和大型数据库( Oracle 、MySql );对 sql 优化有丰富的多IP vps6. 对丢包能够深度理解,有清晰的丢包思路,具备良好的丢包建模HuMo-genealogy,能够结合丢包场景抽象丢包模型,有良好的面向对象设计多IP vps7. 有强烈的责任心和使命感,学习HuMo-genealogy强,适应HuMo-genealogy好,具有较好的沟通HuMo-genealogy,思路清晰,善于思考,能独立分析和解决问题8. 有互联网电商交易、商家、客服、开放平台、ERP 、财务、结算相关多IP vps优先考虑;有高并发处理多IP vps者优先考虑

ClipperCMS Concrete CMS云服务器线路

引子:以前一开放建立天天骚扰电话,现在开放两个月零查看,虽然是因为 35 岁到了,但这也太离谱了。
ClipperCMS版不说别的,连搜索入口都不好找。基本上,ClipperCMS上是个功能往后都是 app 的二维码,感觉云服务器是放弃ClipperCMS版了。移动端还没用不评价。
十几年下来就用过两个招聘平台,中华英才网技术线路直接把Concrete CMS改没了,感觉云服务器技术线路也快把Concrete CMS改没了。